thymeleaf中跳转跟关闭页面的判断

来源:互联网 发布:帝国cms 用户名不合法 编辑:程序博客网 时间:2024/06/12 00:21

首先了解一下javascript中event的用法:

event属性:    
   altKey   检索ALT键的当前状态
   可能的值 true为关闭
   false为不关闭
    
   button   检索按下的鼠标键
   可能的值: 0 没按键
   1 按左键
   2 按右键
   3 按左右键
   4 按中间键
   5 按左键和中间键
   6 按右键和中间键
   7 按所有的键
    
   cancelBubble   设置或检索当前事件是否将事件句柄起泡
   可能的值: false 启用起泡
   true 取消该事件起泡
    
   clientX   检索与窗口客户区域有关的鼠标光标的X坐标,属性为只读,没有默认值。    
   clientY   检索与窗口客户区域有关的鼠标光标的Y坐标,属性为只读,没有默认值。    
   ctrlKey 检索CTRL键的当前状态
   可能的值 true为关闭
   false为不关闭
    
   dataFld   检索被oncellchange事伯影响的列    
   aTransfer   为拖放操作提供预先定义的剪贴板式。    
   Element   检索在on mouseover和on mouseout事件期间退出的对象指针    
   keyCode   设置或检索与引发事件的关键字相关联的Unicode关键字代码
   该属性与onkeydown onkeyup onkeypress一起使用
   如果没有引发事件的关键字,则该值为0
    
   offsetX   检索与触发事件的对象相关的鼠标位置的水平坐标
    
   offsetY   检索与触发事件的对象相关的鼠标位置的垂直坐标
    
   propertyName   检索在对象上己更改的特性的名称
    
   reason   检索数据源对象数据传输的结果
   可能的值:
   0 数据传输成功
   1 数据传输失败
   2 数据传输错误
    
   recordset   检索数据源对象中默认记录集的引用
   该特性为只读
    
   repeat   检索一个事件是否被重复
   该属性只有在onkeydown事件重复时才返回true
    
   returnvalues   设置或检索从事件中返回的值
   可能的值:
   true 事件中的值被返回
   false 源对象上事件的默认操作被取消
    
   screenX   检索与用户屏相关的鼠标的水平位置
   screenY   检索与用户屏相关的鼠标的垂直位置    
   shiftKey   检索shiftKey键的当前状态
   可能的值 true为关闭
   false为不关闭
    
   srcElement   检索触发事件的对象    
   srcFilter   检索导致onfilterchange事件触发的过滤器对象    
   srcUm   检索触发事件行为的同一资源名称
   除非下面两个条件都为真,否则该特性被设置为null
   1.行为被附加到触发事件的要素上
   2.在前面的项目符号中定义的行为己指定了一个URN标识符和己触发的事件
    
   toElement   检索作为on mouseover或者on mouseout事件结果而移动的对象    
   type   检索事件对象中的事件名称    
   x   检索相对于父要素鼠标水平坐标的整数    
   y   检索相对于父要素鼠标垂直坐标的整数

clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。
clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。
offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。
offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。
screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。
screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。
x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。
y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。
 
event.clientX返回事件发生时,mouse相对于客户窗口的X坐标,event.X也一样。但是如果设置事件对象的定位属性值为relative,event.clientX不变,而event.X返回事件对象的相对于本体的坐标。


其次,需要了解一下跳转和关闭中触发的事件

onbeforeunload与onunload事件
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload 来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。
Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而Onbeforeunload 可以做到。
 
页面加载时只执行onload
页面关闭时先执行onbeforeunload,最后onunload
页面刷新或者跳转时先执行onbeforeunload,然后onunload,最后onload。

现在应该就清楚了吧,如下

在onbeforeunload方法执行时加上这个:

window.onbeforeunload=function (){if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){     //判断鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,这里面写关闭执行的一些代码}else{     //这里面写跳转或刷新执行的代码!}}

原创粉丝点击