我在beforeload事件上有一个确认框 - 代码如下:
window.onbeforeunload = function(){
//alert('leaving ... ' + is_edited );
if (is_edited == true) {
return confirm('Are you sure you want to navigate away from this page? \n\n Press OK to continue, or Cancel to stay on the current page.');
}
};
问题在于 - 确认警报显示两次。我搜索了stackoverflow,并对此问题提出了很多疑问。但我的有点不同。它显示两次不同的确认警报。对于FF,消息是相同的,但对于第二个确认框中的Crome,消息为false
。
提前致谢。
答案 0 :(得分:1)
“onbeforeunload”处理程序应该返回一个字符串。是否向用户显示字符串取决于浏览器。
你的函数返回“confirm()”调用的结果,一个布尔值。 Firefox 4确实不显示“beforeunload”处理程序返回的字符串,而其他浏览器仍然这样做。因此,您的函数会弹出一个“确认”框,获取结果并返回它。浏览器然后提出“beforeunload”确认,在某些浏览器的情况下将包含从处理程序返回的字符串值(“true”或“false”)。
Here是该事件及其处理程序的Mozilla文档。
答案 1 :(得分:0)
最好在这里使用jQuery来实现跨浏览器功能。