繁体   English   中英

tab.openerTabId 在 Firefox WebExtension 中未定义

[英]tab.openerTabId undefined in Firefox WebExtension

我在 Firefox WebExtension 的后台脚本中有此代码,但每次创建新选项卡时它都会打印: "OPENER ID: undefined"

chrome.tabs.onCreated.addListener(function (tab) {
    console.log("OPENER ID: " + tab.openerTabId);
});

问题是什么? 这段代码在 Chrome 中运行良好,在文档中它说 Firefox 支持openerTabId属性。

是的,创建新选项卡时 openerTab 仍然存在(通过单击 openerTab 中的某个链接创建新选项卡)。

自 Firefox 57 起在桌面 Firefox 中受支持

Firefox 57 开始,桌面版 Firefox 支持tabs.Tab.openerTabId

Firefox for Android 不支持

Firefox for Android 不支持tabs.Tab.openerTabId

有关至少可以为您提供一些信息的解决方法的详细信息,请参阅我的回答:如何在 Firefox WebExtensions 中获取 openerTabId?

在 Firefox 57 之前不支持(原始答案)

问题是 Firefox 不支持tabs.Tab.openerTabId Firefox兼容性说明明确指出 [强调我的]:

不支持“openerTabId”。

如果您真的需要这些信息,您通常可以使用各种事件自己跟踪它: 如何在 Firefox WebExtensions 中获取 openerTabId?

如果您希望将此功能视为 WebExtensions API 的一部分,我建议您提交错误以跟踪其实现。

首先,我相信Firefox使用

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

而不是

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

https://developer.mozilla.org/zh-CN/Add-ons/WebExtensions/Chrome_incompatibilities

我不认为这是您的主要问题,因为我一直在尝试复制问题,而且我也看到后台脚本似乎无法访问openerTabId属性(至少从后台)通过单击浏览器图标激活脚本)。 我可以访问其他Tabs.tab属性,例如状态,索引和ID,但不能访问openerTabId属性。 openerTabID保持读取为“未定义”。 我不知道是否有必要采取特殊步骤来访问此属性,而不是这是否是一个bug(因为文档中所说的bug应该是可读的,因此只要打开该标签的标签仍然存在)。 https://developer.mozilla.org/zh-CN/Add-ons/WebExtensions/API/tabs/Tab

如果您将提供有关编码逻辑外观的更多详细信息(清单看起来像什么?等),这将非常有帮助,以便有经验的贡献者可以参与进来。

(我将其发布为答案而不是评论,因为我没有足够的声誉可以发表评论。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM