tab.openerTabId在Firefox WebExtension中未定义

时间:2016-12-24 17:26:13

标签: javascript firefox tabs firefox-addon firefox-webextensions

我在Firefox WebExtension的后台脚本中有这段代码,但每次创建新标签时都会打印:chrome.tabs.onCreated.addListener(function (tab) { console.log("OPENER ID: " + tab.openerTabId); });

openerTabId

有什么问题?此代码在Chrome中运行良好,在文档中,它表示Firefox支持{{1}}属性。

是的,创建新标签时仍然存在openerTab(通过点击openerTab中的某个链接创建新标签页)。

2 个答案:

答案 0 :(得分:0)

问题在于Firefox does not support tabs.Tab.openerTabIdcompatibility notes for Firefox明确说明[强调我的]:

  

' openerTabId'是不支持

如果您确实需要这些信息,您可以使用各种活动自行跟踪:How to get openerTabId in Firefox WebExtensions?

如果您希望将此功能视为WebExtensions API的一部分,我建议您file a bug跟踪其实施。

答案 1 :(得分:-1)

首先,我相信Firefox使用

browser.tabs.onCreated.addListener(function(tab) {});

而不是

chrome.tabs.onCreated.addListener(function(tab) {});

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities

我不认为这是你的主要问题,因为我一直试图复制这个问题,我也看到后台脚本似乎不可能访问openerTabId属性(至少从通过单击浏览器图标激活的后台脚本)。我可以访问其他Tabs.tab属性,例如status,index和id,但不能访问openerTabId属性。 openerTabID保持读取为“未定义”。我不知道是否有必要采取特殊步骤来访问此属性,而不是这是一个错误(自文档说它应该是可读的错误,只要调用开头的选项卡仍然存在)。 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/Tab

如果您提供有关编码逻辑的外观(清单看起来是什么样的等等)的详细信息,那将非常有用,这样可能会有更多有经验的贡献者参与其中。

(我在这里发布此答案而非评论,因为我还没有足够的声誉可以发表评论。)