我在文档中读到,在页面上执行的javascript无法访问内容脚本的变量和函数(请参阅here)。但是,如果我在background.html中使用以下简单代码:
<script src="/path/to/caller.js"></script>
其中caller.js只包含
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null, { code: 'alert(test)'});
}
和一个表现良好的内容脚本定义
var test = 42;
alert()正确显示并显示42值。所以我可以访问&#39;测试&#39;全球。 那么我误解了什么吗?
答案 0 :(得分:1)
内容脚本在称为孤立世界的特殊环境中执行。他们可以访问注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。
chrome.tabs.executeScript
和清单注入content_script
都在同一环境中执行。该文档指定您的扩展代码无权访问网站本身的变量或函数。