2
我正在使用Firefox附加組件,當您在YouTube上觀看視頻時,我想添加一個pageAction。我的background script運行良好,直到您從YouTube視頻轉到任何其他YouTube頁面,pageAction不會消失。這是我的代碼:OnHistoryStateUpdated過濾器無法正常工作
var filter = {
url:[
{
pathContains: "watch",
hostSuffix: "youtube.com"
}
]
}
function showPageAction(details) {
browser.pageAction.show(details.tabId);
}
browser.webNavigation.onCommitted.addListener(showPageAction, filter);
browser.webNavigation.onHistoryStateUpdated.addListener(showPageAction, filter);
它只是發生在您第一次按從YouTube視頻頁面(歷史,主要,通道等),其他任何YouTube鏈接,因爲當你去到另一個YouTube頁面從第一點擊,它消失。 喜歡的東西:
- 打開新的標籤頁
- 直接轉到www.youtube.com(doesn't出現)
- 按任意視頻(它的出現,如預期)
- 按任意鏈接到YouTube頁面(主,歷史,一個燭)(它仍然存在,shoudn't消失?)
- 再次按從視頻不同的任何其他環節(它終於消失)
我想在showPageAction函數中添加一個過濾器,但是,是不是onHistoryStateUpdated過濾器應該這樣做?
我並沒有真正得到了解釋,對不起(英語不是我的第一語言)。但是,只要改變,代碼就可以很好地工作。 我嘗試使用包含,它沒有工作,根據[onHistoryUpdate](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webNavigation/onHistoryStateUpdated)docs,url是一個字符串;並且string中沒有'contains'方法,但'includes'具有相同的結果。 有了這個改變,你甚至不需要onCommitted事件。 –