我正在部署一个信息亭系统,该系统使用 Chrome 来显示在 jetty 中运行的 java web 应用程序,该应用程序以 Windows 服务包装器启动。系统启动后需要一些时间才能让 jetty 准备好提供内容,因此现在我需要等待,然后以 kiosk 模式启动 Chrome。这是相当丑陋、不可靠且缓慢的。
为了使其运行更顺畅,我正在尝试做的是使用 Chrome 扩展来检测 4xx 错误并设置重新加载页面的超时。我按原样工作,但它仍然是一个丑陋的解决方案,因为页面每 3 秒刷新一次,并且在用户等待时向用户显示“哎呀!Google Chrome 找不到...”页面。我可以通过在后台使用 ajax 请求来修复第一个问题,以检测页面何时准备就绪,但我真的想向用户展示一个漂亮的“正在加载”屏幕,而不是错误页面。我不是 Chrome 扩展程序开发人员,到目前为止,我使用扩展程序解决此问题的所有尝试都失败了。
我认为可以自定义错误页面,但我找不到任何有关如何执行此操作的信息,因为我在该主题上找到的所有搜索结果都围绕 512 最小大小问题。
您可以使用以下命令自定义错误页面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")
});
});
页面.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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)