javascript - 在 Angular 6 中显示离线模式的错误 html
问题描述
我有一个可以进入离线模式的应用程序。为此,我实现了一个监听应用程序事件的 HostListener。
@HostListener('window:offline', ['$event']) onOffline() {
this.isOnline = false;
}
这工作正常,我显示一条错误消息:
<div *ngIf="!isOnline">
<div class="network-div">
<mat-icon class="network-icon">cloud_off</mat-icon>
</div>
<p class="network-text">Network error - unable to connect.
Please try again or contact support if error persists, contact the NCR
support desk.</p>
</div>
当我离线时,我会收到所需的消息,但是现在互联网已关闭,当我刷新时,我会收到带有该恐龙的通常的谷歌错误消息。
由于它在离线模式下运行,我无法再在我的角度组件中呈现错误 HTML。我需要在刷新时呈现上面的 HTML。
当我点击开发者工具的“离线”时,我会渲染一个 HTML,下面是截图:
我该如何处理?
解决方案
关于浏览器的缓存访问:如何在 Firefox 中启用离线浏览 如果在浏览器上将事件监听器附加到 document.body,Chrome 将无法工作。您可以为这些事件注册侦听器:
在窗口、文档或 document.body 上使用 addEventListener
通过将 document 或 document.body 上的 .onoffline 属性设置为 JavaScript Function 对象。
通过在 HTML 标记中的标记上指定 onoffline="..." 属性。
一个JavaScript
window.addEventListener('load', function() {
var status = document.getElementById("status");
var log = document.getElementById("log");
function updateOnlineStatus(event) {
var condition = navigator.onLine ? "online" : "offline";
status.className = condition;
status.innerHTML = condition.toUpperCase();
log.insertAdjacentHTML("beforeend", "Event: " + event.type + "; Status: " + condition);
}
window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOnlineStatus);
});
推荐阅读
- android - 在当前位置和从服务器获取的位置之间绘制路线
- javascript - 过滤器组项的未捕获 ReferenceError
- angular - 子组件值更新后如何调用父组件页面功能(例如:更改日期选择器)
- excel - 使用宏进行十进制数据验证
- docker - docker saucelabs:无效的参考格式
- javascript - 在javascript中打印集合元素
- java - java如何改变排序的优先级
- mysql - MySQL 存储过程没有调用正确的 CASE
- c# - 如何在网格中设置 TextBlock 的边界?
- java - 如何修复'Android资源编译失败输出:values_values.arsc.flat:错误:打开失败。'