檢測,如果我的分機overrides the newtab
page和用戶安裝另一部分也覆蓋newtab
頁面的一個例子是。目前,只有一個newtab
擴展出現,它通常不是我的。如何當另一個Chrome擴展覆蓋同一頁
我能做些什麼來檢測何時發生這種衝突並告知用戶這樣的情況?
的management API不告訴我,如果擴展覆蓋任何網頁,讓我遺憾的是不能使用的。
檢測,如果我的分機overrides the newtab
page和用戶安裝另一部分也覆蓋newtab
頁面的一個例子是。目前,只有一個newtab
擴展出現,它通常不是我的。如何當另一個Chrome擴展覆蓋同一頁
我能做些什麼來檢測何時發生這種衝突並告知用戶這樣的情況?
的management API不告訴我,如果擴展覆蓋任何網頁,讓我遺憾的是不能使用的。
這似乎不是API的一個顯而易見的功能。我建議你在http://crbug.com處打開一個錯誤。
如果做不到這一點,你可以執行以下討厭的黑客(我沒有測試):
有你的新標籤頁將消息發送到你的背景頁面時,它加載。
傾聽與chrome://newtab
處理chrome.webNavigation.onBeforeNavigate
事件:
chrome.webNavigation.onBeforeNavigate.addListener(function(details) {
/* send message */
}, { url: [{ urlEquals: 'chrome://newtab/' }] });
當webNavigation
看到瀏覽器加載chrome://newtab
但你沒有看到一個消息,你的背景頁面不久之後,您的新標籤頁可能是沒有被使用。從那裏,你可以發送通知,或打開另一個標籤/窗口並附帶通知。
不幸的是,這需要webNavigation
許可,如果您的分機沒有,否則需要它這是不幸的。它帶來的警告(「此擴展程序可以訪問您的標籤頁和瀏覽活動」)可能會嚇跑一些潛在的用戶,特別是如果沒有理由讓用戶明白這一點。 (然後,也許我對用戶的安全認真性過於樂觀。)如果您的擴展程序目前使用了API,那麼它已經帶有這個通知。
['chrome.webNavigation'](https://developer.chrome.com/extensions/webNavigation.html)API將比'tabs' API更合適。這個API允許你聲明過濾器,例如'chrome.webNavigation.onBeforeNavigate.addListener(function(details){/ * do something * /},{url:[{urlEquals:'chrome:// newtab /'}]});' –