google-chrome - 更改 Chrome 4xx 页面

标签 google-chrome google-chrome-extension kiosk kiosk-mode

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

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

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

最佳答案

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

检查示例代码作为引用。

示范

list 文件

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

{
    "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")
    });
});

页面.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>

引用
  • webNavigation.onErrorOccurred
  • 关于google-chrome - 更改 Chrome 4xx 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841256/

    相关文章:

    javascript - 安装 google chrome 扩展程序的 html 代码 (.crx)

    javascript - 不可枚举的属性出现在 Chrome 的 for...in 循环中

    javascript - chrome.identity.launchwebauthflow 对于特定用户失败

    javascript - 使用 JavaScript 关闭 chrome-extension 通知

    objective-c - iPad Kiosk sleep 唤醒

    java - 使用链表添加多个项目,JAVA

    asp.net - Chrome 中 ASP.NET 站点的呈现不正确 - 单击时已修复

    javascript - 如何使用 Javascript 打开新的隐身窗口? (谷歌浏览器)

    google-chrome-app - 非托管 Chromebox 上的自助服务终端模式?

    css - 我应该相信 Chrome 的审核工具吗?