阅读:1542回复:2
想做一个火狐的关闭监控,onbeforeunload 在Firefox上 没有反应
做火狐关闭 监控 写的方法无效 不知道哪个大神知道啊
var flag = true; window.onbeforeunload = function (ev) {//关闭浏览器 if (flag) { var evt = window.event || arguments[0]; var userAgent = navigator.userAgent; if (userAgent.indexOf("MSIE") > 0) { var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth - 20; if (b && window.event.clientY < 0 || window.event.altKey) { window.event.returnValue = ("IE该操作将会导致非正常退出系统(正确退出系统方式:点击退出系统按钮),您是否确认?"); }else { return ("该操作将会导致非正常退出系统(正确退出系统方式:点击退出系统按钮),您是否确认?"); } }else if (userAgent.indexOf("Firefox") > 0) { alert(2); // window.event.returnValue = ("火狐上操作将会导致非正常退出系统(正确退出系统方式:点击退出系统按钮),您是否确认?"); // return ("火狐该操作将会导致非正常退出系统(正确退出系统方式:点击退出系统按钮),您是否确认?"); }else if(userAgent.indexOf("Chrome") > 0){ return ("谷歌上操作将会导致非正常退出系统(正确退出系统方式:点击退出系统按钮),您是否确认?"); } } } 这个是我写的例子 ie 谷歌都行 |
|
1楼#
发布于:2014-10-22 10:30
https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload#Notes
问之前可以自己搜一下onbeforeunload 在google搜索结果中 这个mdn的链接排在第一呢 |
|
|
2楼#
发布于:2014-10-22 11:22
window.event是IE的东西,其他浏览器上都别用。
事件处理最好用addEventListener/attachEvent,别直接写到属性,说不定什么东西就给你覆盖了。 一段简化版的兼容代码: (window.attachEvent || window.addEventListener)((window.attachEvent ? 'onbeforeunload' : 'beforeunload'), function(e) { var confirmationMessage = 'Are you sure?'; (e || window.event).returnValue = confirmationMessage; return confirmationMessage; });另外从firefox 4开始,就不再理会代码返回的消息了。自己用confirm询问用户也是不靠谱的,详见 https://developer.mozilla.org/en-US/docs/WindowEventHandlers.onbeforeunload |
|