火狐扩展 - 我们如何检查这是否是一个内容脚本



我们为 Firefox 开发扩展。脚本需要知道它是内容脚本还是后台脚本(有时同一脚本既可以是内容脚本,也可以是后台脚本(。我们尝试使用以下代码执行此操作:

if (typeof exports === 'undefined') {
    // we're in a content script.
} else {
    // we're in a background script.
}

但问题是,在某些内容脚本中没有'undefined' typeof exports。有没有更好的方法来知道我们何时处于内容脚本中?

编辑:我有一个错误,实际上typeof exports内容脚本中'undefined'。因此,也许检查typeof exports是识别内容脚本的可靠方法。

我想到的第一件事 - 包含一些单独的文件作为内容脚本扩展名,它将具有全局变量。 例如文件content_script_definition.js

isContentScript = true;

然后使用下一个代码:

if (typeof isContentScript !== 'undefined' && isContentScript) {
    // we're in a content script.
} else {
    // we're in a background script.
}

也许有一些记录的功能,不确定这个...

另一种方式

if(String(this).indexOf("Sandbox") >= 0){
  //main.js
}
else{
  //content script
}

最新更新