Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从内容脚本中读取注入js脚本中的变量和函数_Javascript_Function_Variables_Google Chrome Extension_Content Script - Fatal编程技术网

Javascript 从内容脚本中读取注入js脚本中的变量和函数

Javascript 从内容脚本中读取注入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

我从内容脚本中插入一个脚本,如

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.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——就像测试看起来是个问题一样——这又回到了使用上——虽然,这会使“函数”更难“获取”——我想知道使用fetch/XHR、创建一个空脚本节点并添加内容是否可行