跪求,在线等,onbeforeunload 问题

时间:2020-12-14 23:58:01
我现在做一个js弹框,当用户退出系统的时候,给用户一个提示,提示用户指定信息(比如(“你保存你的信息”)),
js代码如下:
window.onbeforeunload = onbeforeunload_handler;  
    function onbeforeunload_handler(){
        
        var warning="You will quit daks system, are you sure?";      
        return warning;  
    }
IE能够正常提示warning内容,但是火狐却提示的是原先本身的内容为(“本页面要求您确认您要离开-您输入的数据可能不会被保存”).我要修改火狐这里面的提示内容,怎么去修改啊?

12 个解决方案

#1


没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。

#2


学习了,我还不知道浏览器真的提供了这个接口呢。
这个接口是浏览器提供的,那么不同的浏览器对其有不同的支持也是很正常的,同样是否允许修改也要看浏览器有没有提供这个函数接口;当然处于安全考虑,不允许修改也是有理由的(比如改为“确认关闭将导致系统崩溃”之类)

#3


引用 1 楼  的回复:
没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。


对于这一点,我在网上也查了很多资料,用个confirm可以弹出一个类似的提示框,当我没写return语句的时候,不管我是点确定还是取消,而且他会弹出两次对话框。IE火狐都会关闭浏览器,当我加一个return语句的时候,他就会弹两个提示,但是还是火狐本身的提示。IE当中执行了onbeforeunload之后就不会执行onunload了,而火狐却又可以执行,这兼容性真的是太坑爹了。

#4


引用 3 楼  的回复:
引用 1 楼  的回复:

没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。


对于这一点,我在网上也查了很多资料,用个confirm可以弹出一个类似的提示框,当我没写return语句的时候,不管我是点确定还是取消,而且他会弹出两次对话框。IE火狐都会关闭浏览器,当我加一个return语句的……
对啊,对于模窗口,不同浏览器就是不同,并且onbeforeunload在不同浏览器下效果也不一样

#5


我研究了这个已经一天了,这破东西还是没有搞出来,真的纠结啊~ 为什么就不做个统一的呢~

#6


对于这个问题,有没有绕道的方式去处理?

#7


对于这个问题,有没有绕道的方式去处理?

#8


引用 7 楼  的回复:
对于这个问题,有没有绕道的方式去处理?
在我的能力范围内,我是觉得无解,我们公司的产品,之前也提过类似的需求,他们当初是想弹出一个div层的,但是在关闭页面之前,除了谈模窗口,什么都不会起作用,阻止不了页面关闭,但是问题来了,模窗口还是根据浏览器的特性而不同,不同浏览器显示的效果也不同,所以和需求沟通,只能这么做了。希望你能找到更好的方案,告诉我,共同学习,呵呵

#9


谢谢你提供的经验,有好的解决方案我会和你交流。

#10


我email了Firefox的测试组,他们给了我回复,Firefox4和更高版本的浏览器返回的字符串是不向用户显示。https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload(测试bugID)    
https://bugzilla.mozilla.org/show_bug.cgi?id=641509(document文档)

#11


同样也在为这事烦恼着。呵呵。

#12


客户也有这样的需求了  火狐改不了   纠结死了

#1


没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。

#2


学习了,我还不知道浏览器真的提供了这个接口呢。
这个接口是浏览器提供的,那么不同的浏览器对其有不同的支持也是很正常的,同样是否允许修改也要看浏览器有没有提供这个函数接口;当然处于安全考虑,不允许修改也是有理由的(比如改为“确认关闭将导致系统崩溃”之类)

#3


引用 1 楼  的回复:
没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。


对于这一点,我在网上也查了很多资料,用个confirm可以弹出一个类似的提示框,当我没写return语句的时候,不管我是点确定还是取消,而且他会弹出两次对话框。IE火狐都会关闭浏览器,当我加一个return语句的时候,他就会弹两个提示,但是还是火狐本身的提示。IE当中执行了onbeforeunload之后就不会执行onunload了,而火狐却又可以执行,这兼容性真的是太坑爹了。

#4


引用 3 楼  的回复:
引用 1 楼  的回复:

没法修改,这是浏览器自身的原因,不同浏览器的内核不一样,实现的效果也不同,有的浏览器在关闭页面前还没法弹出模窗口呢,就是因为考虑安全性的问题。


对于这一点,我在网上也查了很多资料,用个confirm可以弹出一个类似的提示框,当我没写return语句的时候,不管我是点确定还是取消,而且他会弹出两次对话框。IE火狐都会关闭浏览器,当我加一个return语句的……
对啊,对于模窗口,不同浏览器就是不同,并且onbeforeunload在不同浏览器下效果也不一样

#5


我研究了这个已经一天了,这破东西还是没有搞出来,真的纠结啊~ 为什么就不做个统一的呢~

#6


对于这个问题,有没有绕道的方式去处理?

#7


对于这个问题,有没有绕道的方式去处理?

#8


引用 7 楼  的回复:
对于这个问题,有没有绕道的方式去处理?
在我的能力范围内,我是觉得无解,我们公司的产品,之前也提过类似的需求,他们当初是想弹出一个div层的,但是在关闭页面之前,除了谈模窗口,什么都不会起作用,阻止不了页面关闭,但是问题来了,模窗口还是根据浏览器的特性而不同,不同浏览器显示的效果也不同,所以和需求沟通,只能这么做了。希望你能找到更好的方案,告诉我,共同学习,呵呵

#9


谢谢你提供的经验,有好的解决方案我会和你交流。

#10


我email了Firefox的测试组,他们给了我回复,Firefox4和更高版本的浏览器返回的字符串是不向用户显示。https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload(测试bugID)    
https://bugzilla.mozilla.org/show_bug.cgi?id=641509(document文档)

#11


同样也在为这事烦恼着。呵呵。

#12


客户也有这样的需求了  火狐改不了   纠结死了