用js在onbeforeunload判断是刷新还是关闭?

百八烦恼风 2013-07-24 06:35:35
在网上搜了一下,大部分是这两种方法,
第一个alert和第二个alert,
现在测试第一个是可以的,刷新的时候是false,关闭的时候是true。win7 ie9测试。
但问题是在win8 ie10上面各种都不行,无论是刷新还是关闭,无论是第一个还是第二个,全是true。求大神解决方法。
...全文
1110 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
l676331991 2013-07-25
  • 打赏
  • 举报
回复
引用 6 楼 coolboyyzy 的回复:
[quote=引用 5 楼 l676331991 的回复:] 不知LZ是刻意要研究出区分刷新和关闭的方法,还是某个功能需求要用到这个? 如果刻意要区分,我想说的是,区分这个没有什么用途。如果是某个奇葩功能要求判断出刷新和关闭,那么,使用结合后端的方法,或者其他方式,另辟蹊径去实现它吧。浏览器没有给出这个接口,说明区分刷新和关闭暂时是无关痛痒的。如果开发者呼吁声很大,估计浏览器就会给js这么个接口,那时候兴许你拿到event,直接用event里的某个属性就能判断。
不要激动...嘛。没办法啊,客户要求啊,再说我们这本来是可以的,但在ie10和特殊版本的ie9情况下event.clientY返回值不变就有问题了,看下这个http://connect.microsoft.com/IE/feedback/details/794228/kb2846071-breaks-event-clientx-and-event-clienty-properties-in-onbeforeunload-event-handlers-in-ie9-and-10][/quote] 好吧,让你们的客户见鬼去吧~~~ ================ 我在chrome下测试了,onbeforeunload事件里的event没有clientX clientY。你们的客户是只要IE浏览器么?
百八烦恼风 2013-07-25
  • 打赏
  • 举报
回复
引用 5 楼 l676331991 的回复:
不知LZ是刻意要研究出区分刷新和关闭的方法,还是某个功能需求要用到这个? 如果刻意要区分,我想说的是,区分这个没有什么用途。如果是某个奇葩功能要求判断出刷新和关闭,那么,使用结合后端的方法,或者其他方式,另辟蹊径去实现它吧。浏览器没有给出这个接口,说明区分刷新和关闭暂时是无关痛痒的。如果开发者呼吁声很大,估计浏览器就会给js这么个接口,那时候兴许你拿到event,直接用event里的某个属性就能判断。
不要激动...嘛。没办法啊,客户要求啊,再说我们这本来是可以的,但在ie10和特殊版本的ie9情况下event.clientY返回值不变就有问题了,看下这个http://connect.microsoft.com/IE/feedback/details/794228/kb2846071-breaks-event-clientx-and-event-clienty-properties-in-onbeforeunload-event-handlers-in-ie9-and-10]
l676331991 2013-07-25
  • 打赏
  • 举报
回复
不知LZ是刻意要研究出区分刷新和关闭的方法,还是某个功能需求要用到这个? 如果刻意要区分,我想说的是,区分这个没有什么用途。如果是某个奇葩功能要求判断出刷新和关闭,那么,使用结合后端的方法,或者其他方式,另辟蹊径去实现它吧。浏览器没有给出这个接口,说明区分刷新和关闭暂时是无关痛痒的。如果开发者呼吁声很大,估计浏览器就会给js这么个接口,那时候兴许你拿到event,直接用event里的某个属性就能判断。
l676331991 2013-07-25
  • 打赏
  • 举报
回复
引用 3 楼 coolboyyzy 的回复:
window.onbeforeunload=function(){
	alert(event.clientX>document.body.clientWidth);
	alert(event.clientY);//唯独这句两处不一样,本机win7 ie9刷新是正数,关闭是负数;
//虚拟机win8 ie10刷新关闭都是负数,所以就总是true
	alert(event.altKey);
	alert(event.clientX>document.body.clientWidth||event.clientY<0||event.altKey)
}
为什么论坛里总是有人要有这种需求? 在onbeforeunload里还能alert出来?判断鼠标位置有用么?浏览器地址栏旁边不照样有刷新按钮,点击同样能刷新,怎么就非得F5刷新了,不知LZ是如何区分点击的是关闭还是刷新? 放弃吧,完全没有什么实际意义。
百八烦恼风 2013-07-25
  • 打赏
  • 举报
回复
window.onbeforeunload=function(){
	alert(event.clientX>document.body.clientWidth);
	alert(event.clientY);//唯独这句两处不一样,本机win7 ie9刷新是正数,关闭是负数;
//虚拟机win8 ie10刷新关闭都是负数,所以就总是true
	alert(event.altKey);
	alert(event.clientX>document.body.clientWidth||event.clientY<0||event.altKey)
}
未知数 2013-07-25
  • 打赏
  • 举报
回复
刷新一般都是按F5,不如直接监听F5按下,至于少数奇葩的刷新方式,当关闭处理得了,反正不可能100%准确判断
百八烦恼风 2013-07-25
  • 打赏
  • 举报
回复
来人呀
etherdream 2013-07-25
  • 打赏
  • 举报
回复
判断坐标完全不可行。除了点X,双击图标也可以关闭窗口
百八烦恼风 2013-07-25
  • 打赏
  • 举报
回复
引用 8 楼 etherdream 的回复:
刷新和关闭都可以用鼠标点,根本没法检测。
恩,现在的想法就是通过浏览器上方点击刷新或者关闭的都会有提示,在body里面submit刷新的时候就没有提示,所以现在通过event.clientY来判断,但某些版本的ie9和ie10获取不到event.clientY,问题就是这个,http://connect.microsoft.com/IE/feedback/details/794228/kb2846071-breaks-event-clientx-and-event-clienty-properties-in-onbeforeunload-event-handlers-in-ie9-and-10
etherdream 2013-07-25
  • 打赏
  • 举报
回复
刷新和关闭都可以用鼠标点,根本没法检测。
javascript函数的解释,解释了具体函数的功能,一、函数JavaScript函数集合 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase(); 7.JS中的值类型:String,Number,Boolean,Null,Object,Function 8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型:(""+变量) 10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<= 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop} 16.循环中止的命令是:break 17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self 20.状态栏的设置:window.status="字符"; 21.弹出提示信息:window.alert("字符"); 22.弹出确认框:window.confirm(); 23.弹出输入提示框:window.prompt(); 24.指定当前显示链接的位置:window.location.href="URL" 25.取出窗体中的所有表单的数量:document.forms.length 26.关闭文档的输出流:document.close(); 27.字符串追加连接符:+= 28.创建一个文档元素:document.createElement(),document.createTextNode() 29.得到元素的方法:document.getElementById() 30.设置表单中所有文本型的成员的值为空: var form = window.document.forms[0] for (var i = 0; iJS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE) 32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length 33.单选按钮组判断是否被选中也是用checked. 34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值) 35.字符串的定义:var myString = new String("This is lightsword"); 36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase(); 37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 38.取字符串中指定位置的一个字符:StringA.charAt(9); 39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 40.数学函数:Mat
目录 IBM WEBSPHERE PORTAL 1 目录 2 参数资料 10 一、搜索功能 11 1、搜索表单 11 2、搜索组件 11 3、搜索集合 12 4、站点设置 13 5、模板 13 6、站区创建及内容 13 7、搜索跳转页面 14 8、搜索表单的部署 14 9、详细内容页面 14 10、其他组件 14 11、搜索功能会遇到的问题及其解决方案 14 12、搜索过滤 16 13、注意 16 14、WCM高级搜索参数 16 ADVANCED WCM/WEBSPHERE PORTAL SEARCH INTEGRATION 17 Introduction 17 How to search WCM content using this metadata 18 Specific example 21 15、高级参数二 32 16、搜索网页资料 33 二、页面导航 41 1、页面导航组件创建 41 2、使用场景及其环境设置 41 三、授权与用户 41 1、一般用户 41 2、匿名用户 42 3、授权地点及其方式 42 4、传播与继承 42 5、用户与组管理 43 四、域名 44 1、portal服务器域名 44 2、本机域名映射 44 五、WCM几个页面路径及其名称 44 1、登录页面 44 2、主题及主页页面 45 3、皮肤外观页面路径 45 4、session超时页面 45 5、登录portal时,绕过登录界面,直接进入到主页(或再登录) 45 6、自定义登录跳转页面 45 7、判断用户是否登录标签 46 8、portal登录注销再登录只出现一张图片 46 9、登录失败及修改提示信息 46 10、设置超时跳转页面 47 11、 输出登录用户名称 47 12、输出注销 48 13 、动态链接 48 六、使用WCM时,会遇到的问题 48 1、不能向富文本编辑器中粘贴内容 48 2、设置WCM timeout超时值 48 3、一般用户不能访问内容 49 4、页面导航不能分页 49 5、一些portal常见问题 49 6、Portal中调用PUMA SPI管理用户和组信息 51 7、WCM内存溢出的解决方法 53 七、组件及其标签 53 (一)、标签 53 1、jsp组件 53 2、组件关联格式 54 3、IDCmpnt标签 55 4、workflowcmpnt标签 55 5、securitycmpnt标签 58 6、profilecmpnt 标签 63 7、pathcmpnt 标签 65 8、historycmpnt标签 67 9、idcmpnt标签 70 10、数字显示格式 73 11、URLCmpnt标签 74 12、AptrixLibCmpnt 标签 76 13、placeholder标签与用户名显示 77 14、JSP中初始化workspace的标签 78 15、JSP中用标签输出一条内容 78 (二)、标签及其功能的使用 78 1、Writing links to Web Content Management content 78 (三)拖放 JSP标记 80 1) 80 2) 83 3) 84 (四)拖放区域 84 1)在定制主题和外表中使用拖放 85 2)拖放标记摘要 85 3)拖放 API 86 八、功能应用或问题 87 1、WCM多子站区指向指定子站区配置 87 2、更改PORTAL默认的登录选项 89 3、如何在主题与皮肤中获取PORTAL登录用户信息 90 4、PORTAL6.1.0.3无法查找任何的用户或用户组 92 5、如何个性化PORTLET添加控制板 93 6、IBM WCM中匿名搜索 94 7、开发一个系统登录的PORTLET 95 8、WEBSPHERE PORTAL调整PORTLET之间的间隙 102 9、PORTAL6.1.0.1配置扩展属性 105 10、内容链接(同服务器或同站区) 120 11、内容链接(不同服务器或不同站区) 120 12、草稿内容阶段的判断、操作和获取(API) 121 13、WCM 中附件下载 121 14、WCM流程带审核组成 122 15、关于使用WCM API获取内容的小经验 123 16、PORTAL WAR包部署方式 124 17、设置PAGE-AREA区域背景为透明 127 18、设置PAGE-AREA区域的宽度 127 19、设置左侧导航页面相对标签的缩进 128 20、PORTLET之间间隙的调整 129 21、WCM 主题中获取登录用户的UID信息 129 22、配置是否自动加载主题JSP文件 131 23、菜单中标题链接迭代方式(

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧