为什么不使用WebExtension定义Require(FireFox的Chrome扩展)

时间:2015-10-19 13:35:10

标签: javascript google-api firefox-addon firefox-webextensions firefox-nightly

我尝试使用webextension模块在Nightly(现在)上移植Chrome扩展程序,但是,当我尝试执行时需要(" sdk / tabs");

var tabs = require("sdk/tabs");

tabs.on("ready",function(tabs) {
  if (tabs && tabs.url && tabs.url.match(driveURLpattern) || tabs.url.match(docsURLpattern)) {
    currentTabId = tabs.id;
    return authentication();
  }

});

  

控制台:ReferenceError:未定义require

但它不起作用......我如何定义它?

更新:Chrome的原始代码为:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status === 'complete') {
  if (tab && tab.url && tab.url.match(driveURLpattern) || tab.url.match(docsURLpattern)) {
    currentTabId = tab.id;
    return authentication();
  }
}

});

提前致谢!

eKivOx

编辑:已找到解决方案。谢谢你

解决方案是,要求不在WebExtensions中,我们不能像SDK-addons一样,所以我检查了ChromeAPi的兼容性,我看到chrome.tabs.onUpdated()是兼容!Cya

1 个答案:

答案 0 :(得分:1)

require用于CommonJS模块的上下文中。它导入库模块导出的方法。 您无法将Chrome扩展程序移植到FF-addon。您需要使用JPM创建新的Firefox扩展,并在附加脚本中使用require

HTH