控制“哎呀!Chrome无法找到......”页面?

时间:2013-12-11 09:40:19

标签: google-chrome google-chrome-extension

当您输入无效地址时,Chrome会显示一个灰色页面,上面写着“糟糕!Google Chrome无法找到X.您的意思是Y?”

因为这不是HTTP页面,而是浏览器内置的东西之一,我不能在其中放入内容脚本而无法控制它,因此我的扩展程序被冻结,直到用户手动转到另一个页。

由于扩展应该能够自己控制浏览器,因此非常重要的是,无论何时打开此页面,它都会自动返回到我的内容脚本访问的页面,然后显示一条消息。

这不可能吗?

2 个答案:

答案 0 :(得分:4)

您可以使用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))
        });
    }
});

答案 1 :(得分:1)

根据 the docs ,扩展程序可以覆盖的唯一页面是:

  • 书签管理员
  • 历史
  • 新标签

因此,扩展程序无法更改/控制/影响浏览器关于“糟糕!...”页面的行为。