我正在通过我的第一个“将所有内容放在一起”Chrome 扩展程序感到困惑,我将描述我正在尝试做的事情,然后用一些脚本摘录来描述我是如何进行的:
- 我有一个options.html 页面和一个options.js 脚本,它允许用户在文本字段中设置一个url——这使用localStorage 存储。
function load_options() { var repl_adurl = localStorage["repl_adurl"]; default_img.src = repl_adurl; tf_default_ad.value = repl_adurl; } function save_options() { var tf_ad = document.getElementById("tf_default_ad"); localStorage["repl_adurl"] = tf_ad.value; } document.addEventListener('DOMContentLoaded', function () { document.querySelector('button').addEventListener('click', save_options); }); document.addEventListener('DOMContentLoaded', load_options );
- 我的 contentscript 将脚本“myscript”注入页面(因此它可以访问页面 html 中的 img 元素)
var s = document.createElement('script'); s.src = chrome.extension.getURL("myscript.js"); console.log( s.src ); (document.head||document.documentElement).appendChild(s); s.parentNode.removeChild(s);
- myscript.js应该以某种方式获取本地存储数据并确定如何操作图像元素。
我从 html 源中获取图像没有任何问题,但我似乎无法访问 localStorage 数据。我意识到这必须与具有不同环境的两个脚本有关,但我不确定如何克服这个问题——据我所知,我需要从 contentscript.js 注入 myscript.js,因为 contentscript.js 没有可以访问 html 源代码。
希望这里有人可以建议我缺少的东西。
谢谢你,我很感激你能提供的任何帮助!
-安迪