我们为Firefox开发扩展程序。脚本需要知道它是内容脚本还是后台脚本(有时相同的脚本既可以是内容脚本,也可以是后台脚本)。我们尝试使用以下代码执行此操作:
if (typeof exports === 'undefined') {
// we're in a content script.
} else {
// we're in a background script.
}
但问题是某些内容脚本中 typeof exports
不是'undefined'
。有没有更好的方法来了解我们何时进入内容脚本?
修改:我有一个错误,实际上typeof exports
在内容脚本中是'undefined'
。因此,检查typeof exports
是识别内容脚本的可靠方法。
答案 0 :(得分:2)
我想到的第一件事 - 包括一些单独的文件扩展为内容脚本,它将具有全局变量。例如。 file content_script_definition.js :
isContentScript = true;
然后使用下一个代码:
if (typeof isContentScript !== 'undefined' && isContentScript) {
// we're in a content script.
} else {
// we're in a background script.
}
也许有一些记录在案的功能,对此不确定...
答案 1 :(得分:1)
另一种方式
if(String(this).indexOf("Sandbox") >= 0){
//main.js
}
else{
//content script
}