Allowed access to content script globals from a chrome.tabs.executeScript injected code?
我在文档中读到,在页面上执行的javascript无法访问内容脚本的变量和函数(请参见此处)。但是,如果我在background.html中使用以下简单代码:
1 | <script src="/path/to/caller.js"> |
其中caller.js仅包含
1 2 3 | chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript(null, { code: 'alert(test)'}); } |
和内容丰富的脚本定义了
1 | var test = 42; |
alert()正确出现并显示42值。因此,我可以全局访问"测试"。
那我误会了吗?
内容脚本在称为隔离世界的特殊环境中执行。他们可以访问所注入页面的DOM,但不能访问该页面创建的任何JavaScript变量或函数。