我已經與page_action
進行了擴展,但不幸的是我也不能使用browser_action
,所以我需要將我的代碼重寫爲browser_action
。Chrome擴展程序:在當前選項卡上的Eventlisten
我正在檢查一個標籤的URL,當它與RegExp匹配時,圖標會發生變化。這工作,但只有當一個標籤重新加載或創建,但不是當我只是訪問不同的,已加載標籤。所以即使URL完全「錯誤」,該圖標也不會改變。
只是舊代碼:
function checkHosts(tabId, changeInfo, tab) {
if(hosts.length>0)
if(hosts.some(function (element, index, array) { return RegExp("(http|ftp|https)://([\w\.]*)"+element+"(.*)/").test(tab.url)})) {
chrome.browserAction.setIcon({path: 'img/icon-19.png'})
} else {
chrome.browserAction.setIcon({path: 'img/icon-19_off.png'})
}
}
chrome.tabs.onUpdated.addListener(checkHosts);
於是,我就事件改變從onUpdated
到onActivated
。它給了我這個錯誤(振作起來):
Error in event handler for tabs.onActivated: TypeError: Cannot read property 'url' of undefined
at chrome-extension://hjldlodngamjdnompiekojgebnmolnab/background.js:28:122
at Array.some (native)
at checkHosts (chrome-extension://hjldlodngamjdnompiekojgebnmolnab/background.js:28:12)
at Function.target.(anonymous function) (extensions::SafeBuiltins:19:14)
at Event.dispatchToListener (event_bindings:382:22)
at Event.dispatch_ (event_bindings:367:27)
at dispatchArgs (event_bindings:241:26)
at dispatchEvent (event_bindings:250:7)
我不能得到錯誤,我做到了,所以這將是非常好的,如果有人可以幫助我。