导航离开网页时的警报

IT技术 javascript browser google-docs alerts
2021-02-20 14:50:01

当我尝试关闭带有未保存更改的 Google 文档选项卡时,这就是我在浏览器 (FF 3.5) 中看到的内容。

您确定要离开此页面吗?

您在此文档中有未保存的更改。立即单击取消,然后单击“保存”以保存它们。现在单击“确定”放弃它们。

按确定继续,或按取消留在当前页面。

我的问题是这些警报是网络应用程序的一部分(例如 gdocs)还是由浏览器发出?如果是后者,这是如何做到的?

2个回答

通过浏览器。beforeunload是返回对话框的自定义文本事件处理程序,它只是三个段落的中间部分 - 其他两个段落以及按钮的文本不能自定义或以其他方式更改。

window.onbeforeunload = function(){ return 'Testing...' }

// OR

var unloadListener = function(){ return 'Testing...' };
window.addEventListener('beforeunload', unloadListener);

将产生一个对话框,上面写着

Are you sure you want to navigate away from this page?

Testing...

Press OK to continue, or Cancel to stay on the current page.

您可以通过将处理程序设置为 null 来取消此设置

window.onbeforeunload = null;

// OR

window.removeEventListener('beforeunload', unloadListener);
@PeterBailey 我建议你更新你的答案并使用更现代的addEventListener而不是onbeforeunload. 此外,事件名称是beforeunload,而不是onbeforeunload
2021-04-27 14:50:01
不是我所知道的,不。
2021-04-30 14:50:01
谢谢彼得。我研究了现代浏览器在 onbeforeunload 事件中的表现并发布了我的发现。请添加您知道的任何其他复杂细节。
2021-05-10 14:50:01
嗨,彼得,我们有没有办法利用事件来产生一个自定义警报,它提供与本机窗口警报相同的功能?
2021-05-14 14:50:01
@MichałPerłakowski,似乎需要另一个答案(根据您的建议)。
2021-05-21 14:50:01

警报是 Web 应用程序的一部分。查看源代码并查看 javascript。

在使用警报之前,必须首先识别事件。其中“onBeforeUnload”
2021-04-23 14:50:01
至少我在 Google Docs 源中看不到它。
2021-05-02 14:50:01
它可能隐藏在一些晦涩的 JavaScript 文件中。谷歌使用的脚本使他们的 JavaScript 文件对人类来说基本上是不可读的。
2021-05-16 14:50:01