我正在加载一个内容脚本(1.js
),该脚本在某些时候附加了一个<script>
- 元素,指向扩展内的文件(2.js
)。 2.js
不能作为内容脚本包含在内。
有没有办法使用2.js
中的1.js
内定义的变量?
答案 0 :(得分:1)
在后台页面和内容脚本之间使用message passing。后台页面保存值(通过将2.js
作为脚本加载,或者将2.js
作为应用程序的后台脚本本身)并使用chrome.extension.onRequest.addListener
侦听传入消息。内容脚本发送请求,内容脚本发送具有所需值的响应。
答案 1 :(得分:0)
我想出来了。有点脏,但使用动态对象,我有问题。
我只需将所有代码注入页面即可。这是我的内容脚本:
var path = document.createElement('div');
path.id = 'codearea-path';
path.innerHTML = chrome.extension.getURL('/');
path.style.display = 'none';
document.body.appendChild(path);
var script = document.createElement('script');
script.src = chrome.extension.getURL('1.js');
document.head.appendChild(script);
然后我使用相同类型的代码在2.js
内包含1.js
。