google-chrome - 控制 “Oops! Chrome could not find … ”页面?

标签 google-chrome google-chrome-extension

当您输入无效的地址时,Chrome会显示一个灰色页面,显示“糟糕!Google Chrome找不到X。您是说Y?”

由于这不是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))
        });
    }
});

关于google-chrome - 控制 “Oops! Chrome could not find … ”页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20515560/

相关文章:

google-chrome - 什么会导致 Chrome 浏览器扩展程序崩溃?

google-chrome-extension - 尝试在onBeforeRequest上设置监听器时的“Error: Parameter 1 required”

java - 如何强制 Selenium 在新窗口中打开链接?

javascript - 在 Chrome 浏览器中管理 JavaScript 热键

google-chrome - 是否可以通过扩展在 headless 模式下运行 Google Chrome?

css - 轮廓打破边界半径

javascript - jQuery 未在 Google Chrome content_script 扩展中加载

javascript - 访问从 Chrome 扩展动态更新的 DOM

javascript - 如何在页面加载之前重新排序 div?

javascript - 如何从 Angular 4 中的 chrome.runtime.sendMessage 获取回调?