1

我正在尝试使用 webextension 模块在 Nightly(现在)上移植 Chrome 扩展,但是,当我尝试做 require("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:未定义要求

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

更新: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

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

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

4

1 回答 1

1

require 在 CommonJS 模块的上下文中使用。它导入库模块导出的方法。您不能按原样将您的 chrome 扩展移植到 FF-addon。您需要使用 JPM 创建一个新的 Firefox 扩展,并在附加脚本中使用 require

高温高压

于 2015-10-20T17:51:53.383 回答