Chrome扩展程序content_script隔离

时间:2017-07-24 14:36:18

标签: javascript google-chrome-extension

我有两个按照相同域运行的脚本:

"content_scripts": [
  {
    "matches": ["https://myurl.com/*"],
    "js": ["do_stuff.js"]
  },
  {
    "matches": ["https://myurl.com/*"],
    "js": ["do_other_stuff.js"]
  }
],

在这两个文件中,我首先创建一个同名的var:

let myvar = "foo";

但是,其中一个脚本会抛出一个错误,声称已经定义了var。 (当脚本之间的函数名相同时,我也会得到奇特的结果。)

我从Google文档中了解到,每个content_script都是相互明确的沙盒,因此无法访问其他每个变量。

https://developer.chrome.com/extensions/content_scripts

该页面显示内容脚本不能“使用由网页或其他内容脚本定义的变量或函数”。

我做错了什么和/或误解了什么?

1 个答案:

答案 0 :(得分:0)

作为参考,上面https://stackoverflow.com/users/3959875/woxxom的评论确定并解决了问题 - 基本上,文档(至少在当时)有点含糊不清,执行环境实际上是由框架和hosturl沙箱化,而不是内容脚本定义。