【问题标题】:Showing a notice when site fails to load completely当网站无法完全加载时显示通知
【发布时间】:2016-03-29 12:08:18
【问题描述】:

有时在过载期间某些网站无法加载。

我可以使用 chrome.webRequest.onErrorOccurred api 检测到这个错误。

我猜在这种情况下内容脚本根本不会运行,所以从后台页面向内容脚本发送消息是没有用的。

如何在网站正文中粘贴加载失败的通知?

也许使用从后台页面执行的脚本?页面会有正文内容吗?

【问题讨论】:

  • @dan75 不,我没有
  • 默认情况下,每当任何请求(文档、样式表、图像等)发生错误时都会触发。但是,如果您将其与 resource type filter 一起使用,则可以过滤某些请求类型。
  • @dan75 好的,我已经更新了我的问题

标签: google-chrome-extension


【解决方案1】:

这里有几个选项。如果您使用chrome.webRequest.onErrorOccurred(),但我建议您在发生错误时将选项卡重定向到错误页面,使用chrome.tabs.update()

例如:

chrome.webRequest.onErrorOccurred.addListener(function(details) 
{    
    chrome.tabs.update(details.tabId, {url: "URL FOR AN ERROR PAGE"});
},
{types: ["main_frame"]});

这将重定向当 web 请求带有 resourceType of main_frame 错误时发生错误的选项卡。

您需要在此处考虑一些事项。您是否只想从具有 main_frame 类型的请求中捕获错误?如果没有,只需从事件中删除“类型”过滤器。

您需要考虑的另一件事是您要重定向到哪个页面。您可以在扩展中打包 HTML 文件,然后重定向到该文件。要生成错误页面的 URL,您可以运行 chrome.extension.getURL('customerrorpage.html')

【讨论】:

    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2017-02-03
    • 2015-03-23
    相关资源
    最近更新 更多