6

我正在部署一个自助服务终端系统,该系统使用 Chrome 来显示一个在码头中运行的 java web 应用程序,该应用程序从一个 Windows 服务包装器开始。系统启动后,码头需要一些时间才能准备好提供内容,所以现在我有一个等待,然后在 kiosk 模式下启动 Chrome。这非常丑陋,不可靠且缓慢。

为了使其运行更顺畅,我正在尝试使用 Chrome 扩展程序来检测 4xx 错误并设置重新加载页面的超时。我按原样工作,但它仍然是一个丑陋的解决方案,因为页面每 3 秒刷新一次,并且在用户等待时向用户显示“糟糕!谷歌浏览器找不到...”页面。我可以在后台使用 ajax 请求解决第一个问题,以检测页面何时准备就绪,但我真的想向用户显示一个漂亮的“正在加载”屏幕而不是错误页面。我不是 Chrome 扩展程序开发人员,到目前为止,我所有使用扩展程序解决此问题的尝试都失败了。

我认为可以自定义错误页面,但我找不到有关如何执行此操作的任何信息,因为我在该主题上找到的所有搜索结果都围绕 512 最小尺寸问题。

4

2 回答 2

6

您可以使用自定义错误页面webNavigation API。为 onErrorOccurred 事件添加事件监听器并更新相关细节。

检查示例代码作为参考。

示范

清单.json

注册后台页面并将所有相关权限添加到清单文件。

{
    "name": "Customize error page",
    "description": "",
    "version": "1",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "permissions": [
        "webNavigation",
        "<all_urls>"
    ],
    "web_accessible_resources": [
        "page.html"
    ]
}

背景.js

如果出现任何错误,将重定向到我们的自定义页面,您可以将其自定义到所需的级别。

//Adding a Listener to Error Occured Event
chrome.webNavigation.onErrorOccurred.addListener(function (details) {
    // Updating the browser window with desired URL
    chrome.tabs.update(details.tabId, {
        url: chrome.extension.getURL("page.html")
    });
});

page.html

一些琐碎的代码

<html>
    <style>
        body {
            background:yellow;
            position:absolute;
        }
    </style>

    <body>
        <div style="top: 200px;position: absolute;left: 500px;width: 500;font-size: 40px;">This is a Nice Description</div>
    </body>

</html>

参考

于 2013-02-13T06:55:48.463 回答
1

转到选项,隐私设置,然后取消选中该框:

“使用网络服务帮助解决导航错误”

详细说明在这里

于 2013-02-12T21:00:02.977 回答