当我试图关闭我的Google文档选项卡时未保存的更改时,这是我在浏览器中获得的内容(FF 3.5)。从网页导航时发出提醒
您确定要离开此页面, ?
您在此 文档中有未保存的更改。点击取消立即,然后 '保存'来保存它们。点击确定立即 丢弃它们。
按OK继续,或取消至 停留在当前页面。
我的问题是这些警报是否是网络应用程序的一部分(例如gdocs),还是由浏览器发出?如果是后者,这是如何完成的?
当我试图关闭我的Google文档选项卡时未保存的更改时,这是我在浏览器中获得的内容(FF 3.5)。从网页导航时发出提醒
您确定要离开此页面, ?
您在此 文档中有未保存的更改。点击取消立即,然后 '保存'来保存它们。点击确定立即 丢弃它们。
按OK继续,或取消至 停留在当前页面。
我的问题是这些警报是否是网络应用程序的一部分(例如gdocs),还是由浏览器发出?如果是后者,这是如何完成的?
通过浏览器。这是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);
警报是Web应用程序的一部分。查看源代码并查看javascript。
寻找 “onBeforeUnload” 抵消这一点。 – 2009-08-17 17:16:37
至少,我无法在Google文档来源中看到它。 – 2009-08-17 17:22:08
它可能隐藏在一些不明显的JavaScript文件中。 Google使用的脚本使其JavaScript文件基本上不可读取给人类。 – ceejayoz 2009-08-17 17:31:41
感谢彼得。我研究了现代浏览器如何处理onbeforeunload事件并发布了我的发现。请添加您知道的任何其他复杂细节。 – 2009-08-21 17:39:52
嗨,彼得,难道我们无法利用事件产生自定义警报,它提供与本机窗口警报相同的功能吗? – SexyBeast 2013-09-10 19:51:30
不是我知道的,没有。 – 2013-09-10 21:48:23