當您輸入無效地址時,Chrome會顯示一個灰色頁面,指出「糟糕!谷歌瀏覽器無法找到X.您的意思是Y?」控制「糟糕!Chrome無法找到...」頁面?
因爲這不是一個HTTP頁面,而是瀏覽器內置的東西之一,所以我不能在其中放入內容腳本並且無法控制它,所以我的擴展程序被凍結,直到用戶手動轉到另一頁。
由於擴展名應該能夠自行控制瀏覽器,因此在此頁面隨時打開時,它會自動返回到頁面做有內容腳本訪問,然後顯示消息。
這是不可能的嗎?
當您輸入無效地址時,Chrome會顯示一個灰色頁面,指出「糟糕!谷歌瀏覽器無法找到X.您的意思是Y?」控制「糟糕!Chrome無法找到...」頁面?
因爲這不是一個HTTP頁面,而是瀏覽器內置的東西之一,所以我不能在其中放入內容腳本並且無法控制它,所以我的擴展程序被凍結,直到用戶手動轉到另一頁。
由於擴展名應該能夠自行控制瀏覽器,因此在此頁面隨時打開時,它會自動返回到頁面做有內容腳本訪問,然後顯示消息。
這是不可能的嗎?
您可以使用chrome.webNavigation.onErrorOccurred
來檢測此類錯誤,並根據需要重定向到其他頁面。除非你有足夠的理由這樣做,否則我強烈建議針對實現此功能,因爲它可能會破壞用戶對瀏覽器行爲方式的期望。
然而,示例代碼:
chrome.webNavigation.onErrorOccurred(function(details) {
if (details.frameId === 0) {
// Main frame
chrome.tabs.update(details.tabId, {
url: chrome.runtime.getURL('error.html?error=' + encodeURIComponent(details.error))
});
}
});
我需要它,因爲它是一個語音控制擴展。當用戶說「轉到X.com」時,如果誤看了他,它會提示Oops頁面和語音控制將停止工作。對於截癱用戶,語音控制不能隨時停止,或者有人必須再次爲他們啓動語音控制。謝謝你的偉大答案。 – Aerovistae
@Aovovistae您是否考慮過使用[瀏覽器操作按鈕](https://developer.chrome.com/extensions/browserAction)使用[背景頁](https://developer.chrome.com/extensions/background_pages.html) html的)? –
@Aovovistae順便提一下,「找不到內容」腳本不是唯一禁用內容腳本的頁面。其他頁面包括(但不限於):chrome:,about:,chrome-extension :.數據:,blob:,文件:(禁止訪問文件URL時)以及Chrome網上應用店中的任何頁面。 –