Chrome的预取会重新加载桌面通知

时间:2015-06-19 14:12:50

标签: javascript html5 google-chrome notifications prefetch

在Chrome中使用通知API 时,我遇到了一个奇怪的错误。我有一个页面从Cookie加载一些通知,并使用Notifications API在页面加载时显示它们。如果我然后使用超链接转到第二页然后开始更改URL地址,那么即使在输入之前我到达第一页的地址,我也会再次弹出通知。我认为这与Chrome如何进行聪明的预取有关。无论如何我可以阻止这个吗?

这是我目前的代码:

var desktop_notification_options = {
  body: text.text(),
  icon: this.settings.icon,
  tag: text.text()
};

var desktop_notification = new Notification('', desktop_notification_options);

setTimeout(desktop_notification.close.bind(desktop_notification),
            this.settings.desktop_notification_timeout);

我已经意识到,如果我在该页面上添加alert(''),则会停止(大概是因为Chrome&#39的预取无法跳过警报),不过这样做了不合理的解决方案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我找到了一个快速修复。我在显示通知之前检查了document.visibilityState,只有在设置为visible时才显示它们。更多信息:http://www.w3.org/TR/page-visibility/#dom-document-visibilitystate