Javascript 离开网页导航时发出警报

Javascript 离开网页导航时发出警报,javascript,browser,google-docs,alerts,Javascript,Browser,Google Docs,Alerts,当我试图用未保存的更改关闭我的Google文档选项卡时,这就是我在浏览器中得到的结果(FF 3.5) 您确定要导航离开吗 从这个页面 此文件中有未保存的更改 文件。然后单击“立即取消” “保存”来保存它们。现在单击“确定”以继续 丢弃它们 按“确定”继续,或按“取消”继续 停留在当前页面 我的问题是,这些警报是web应用程序(例如gdocs)的一部分,还是由浏览器发出的?如果是后者,如何做到这一点 警报是web应用程序的一部分。通过浏览器查看源代码并查看javascript。。是beforeun

当我试图用未保存的更改关闭我的Google文档选项卡时,这就是我在浏览器中得到的结果(FF 3.5)

您确定要导航离开吗 从这个页面

此文件中有未保存的更改 文件。然后单击“立即取消” “保存”来保存它们。现在单击“确定”以继续 丢弃它们

按“确定”继续,或按“取消”继续 停留在当前页面


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

警报是web应用程序的一部分。通过浏览器查看源代码并查看javascript。

。是
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,可以将其置为null

window.onbeforeunload = null;

// OR

window.removeEventListener('beforeunload', unloadListener);

我至少在谷歌文档源代码中看不到它。它可能隐藏在某个模糊的JavaScript文件中。谷歌使用的脚本使其JavaScript文件基本上不可读。在使用警报之前,必须首先识别事件。“在卸货之前”谢谢彼得。我已经研究了现代浏览器在onbeforeunload事件中的行为,并发布了我的发现。请添加您知道的任何其他复杂细节。嗨,Peter,我们是否无法利用该事件生成一个自定义警报,该警报提供与本机窗口警报相同的功能?据我所知,不。@PeterBailey我建议您更新您的答案,并使用更现代的
addEventListener
而不是
onbeforeuload
。此外,事件名称是
beforeunload
,而不是
onbeforeunload
@MichałPerłakowski,似乎需要另一个答案(根据您的建议)。