我在Firefox WebExtension的后台脚本中有这段代码,但每次创建新标签时都会打印:chrome.tabs.onCreated.addListener(function (tab) {
console.log("OPENER ID: " + tab.openerTabId);
});
:
openerTabId
有什么问题?此代码在Chrome中运行良好,在文档中,它表示Firefox支持{{1}}属性。
是的,创建新标签时仍然存在openerTab(通过点击openerTab中的某个链接创建新标签页)。
答案 0 :(得分:0)
问题在于Firefox does not support tabs.Tab.openerTabId
。 compatibility 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
如果您提供有关编码逻辑的外观(清单看起来是什么样的等等)的详细信息,那将非常有用,这样可能会有更多有经验的贡献者参与其中。
(我在这里发布此答案而非评论,因为我还没有足够的声誉可以发表评论。)