0

不確定我有我的Firefox WebExtension的背景腳本的代碼,但它打印:創建"OPENER ID: undefined"每一次新的標籤:tab.openerTabId在Firefox WebExtension

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

問題是什麼?此代碼在Chrome中運行良好,並且在文檔中說明Firefox支持openerTabId屬性。

是的,當新標籤被創建時,openerTab仍然存在(通過點擊openerTab中的某個鏈接創建新標籤)。

回答

-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屬性(至少從背景sc通過點擊瀏覽器圖標激活撕裂)。我可以訪問其他Tabs.tab屬性,例如狀態,索引和id,但不是openerTabId屬性。 openerTabID保持閱讀爲「未定義」。我不知道是否有必要採取特殊步驟才能訪問此屬性,而不管這是否是一個錯誤(一個錯誤,因爲文檔說它應該是可讀的,只要稱爲開頭的標籤仍然存在)。 https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/Tab

這將是非常有益的,如果你能提供有關如何您的編碼邏輯會(什麼清單樣子?等等),這樣或許更有經驗的貢獻者將在權衡更多的細節。

(我發佈這裏作爲答案,而不是作爲評論,因爲我還沒有足夠的聲望可以評論。)

+0

感謝您的輸入!這與瀏覽器/ Chrome瀏覽器相同。我發現它是一個確認的錯誤: https://bugzilla.mozilla.org/show_bug.cgi?id=1238314 真的從Mozilla非專業,列出它作爲一個受支持的屬性... – kecman

+0

Mozilla列出它明確** **不支持。請參閱https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/Tab#Firefox。 –

+0

它目前明確列爲不受支持的,但除非我錯了,在問題最初被問及時我發佈了答案,它並未列爲不受支持。所以當時的答案似乎是合理的(2016年12月)。 https://github.com/mdn/browser-compat-data/pull/99/files https:// github。com/mdn/browser-compat-data/blob/b842d425b54fcae644ab9dbc585b2322f6caa3a0/webextensions/browser-compat-data.json –

0

問題是,火狐does not supporttabs.Tab.openerTabId。該compatibility notes for Firefox明確規定[重點煤礦]:

'openerTabId' 是不支持

如果你真的需要這些信息,你可以居多,自己使用的各種事件進行跟蹤:How to get openerTabId in Firefox WebExtensions?

如果這是你希望看到的WebExtensions API的一部分功能,我建議你file a bug到跟蹤其實施。

+0

我通過跟蹤所有選項卡及其狀態手動實施它。可惜他們自己並沒有實現這樣的小事,儘管bug早已存在。 – kecman

相關問題