我们为 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
}