Firefox扩展 - 我们如何检查这是否是内容脚本?

时间:2014-12-22 13:26:55

标签: javascript firefox-addon firefox-addon-sdk browser-extension

我们为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是识别内容脚本的可靠方法。

2 个答案:

答案 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
}