Javascript 从内容脚本中读取注入js脚本中的变量和函数
我从内容脚本中插入一个脚本,如 content script.jsJavascript 从内容脚本中读取注入js脚本中的变量和函数,javascript,function,variables,google-chrome-extension,content-script,Javascript,Function,Variables,Google Chrome Extension,Content Script,我从内容脚本中插入一个脚本,如 content script.js var s = document.createElement('script'); // TODO: add "script.js" to web_accessible_resources in manifest.json s.src = chrome.extension.getURL('latest.js'); s.onload = function(){ console.log(test); } (document.b
var s = document.createElement('script');
// TODO: add "script.js" to web_accessible_resources in manifest.json
s.src = chrome.extension.getURL('latest.js');
s.onload = function(){
console.log(test);
}
(document.body || document.documentElement).appendChild(s);
var test = 1000;
latest.js
var s = document.createElement('script');
// TODO: add "script.js" to web_accessible_resources in manifest.json
s.src = chrome.extension.getURL('latest.js');
s.onload = function(){
console.log(test);
}
(document.body || document.documentElement).appendChild(s);
var test = 1000;
它添加得很正确,但现在我的问题是在content脚本上从latest.js读取变量和函数,因为content脚本有一些数据需要通过使用其函数或变量传入latest.js
所以,onload函数我尝试console.log(test),它是在latest.js中定义的,但我不能使用它,它还没有定义
帮帮我 根据chrome扩展: …内容脚本有一些限制。他们不能: 使用由其扩展页定义的变量或函数 使用由网页或其他内容脚本定义的变量或函数 因此,您的
latest.js
会弹出到受限区域,内容脚本无法直接读取该数据
但该文档还提供了一个解决方案:通过.postMessage
进行通信
:
内容脚本
注入脚本(最新的.js)
chrome.extension.getURL
在内容脚本中不起作用-您需要研究一下,也许它工作正常,我的问题是读取最新版本中的变量。哦,我不知道您可以这样做,对不起。。。也许您需要等待s.onload
发生,然后latest.js
的内容将被js引擎解析,该文件中的任何代码/变量都将“可用”-这实际上取决于latest.js
事件触发的onload
内容,请尝试window.test=1000改为在脚本中使用code>——就像测试看起来是个问题一样——这又回到了使用上——虽然,这会使“函数”更难“获取”——我想知道使用fetch/XHR、创建一个空脚本节点并添加内容是否可行