项目背景:XXXX资金监管系统,为保证房地产开发公司携款潜逃或者不作为,开发商需要交一部分资金到银行由建委来监管这部分资金的使用。
该方法使用之处:在协议申请的时候,开发商要选择单体楼,一个项目下会有很多的单体,每当点击>>或者<<按钮时,页面都会调用Ajax进行保存或者删除选择楼盘的数据。如下图:
当初这样做的原因是:因为是进度过程中的变更,所以懒得动原先写好的代码了,就采用了这么一种方式。采用该种方式会出现两个附加问题就是,第一个问题是在页面上存在两个按钮
,为了保证数据没修改以前的状态,所以如果用户点击“取消”按钮那么之前点击>>操作的数据要还原回去;第二个问题是因为采用弹出窗口,所以当点击右上角的“关闭”按钮时
,数据也得必须恢复以前状态。
以上第一个问题解决如下:
第二个问题解决方法如下:
var req;
//关闭方法
function back(){
var bldnolist = "";
for ( var i = 0; i < document.getElementById("supvisionbld").options.length; i++) {
if (bldnolist == "") {
bldnolist = document.getElementById("supvisionbld").options[i].value;
} else {
bldnolist = bldnolist + ";" + document.getElementById("supvisionbld").options[i].value;
}
}
req = createReq();//该方法创建XHR对象
var url = "${ctx}/XX/XX.do?method=closeWin";
if (req) {
req.open("post", url, true);//调用open方法
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//指定回调函数为callback
req.onreadystatechange = close_callback;//指定回调函数
req.send("floorno="+bldnolist+"&state=0&supvisionappno=${obj.supvisionappno }");//发送参数,一般为空
}
}
//回调函数
function close_callback() {
if (req.readyState == 4) {
if (req.status == 200) {
window.parent.close();
} else {
alert("\u4e0d\u80fd\u5f97\u5230\u63cf\u8ff0\u4fe1\u606f:" + req.statusText);
}
}
}
window.onbeforeunload = function(){
back();
}
另外本项目还有一个用到onbeforeunload该方法的地方是,退出系统时,直接点击右上角“关闭”按钮时,需要保存用户的退出日志,我也使用了该方法,js代码如下:
window.onbeforeunload = function()
{
if (document.body.offsetWidth-50 < event.clientX && event.clientY<0)
{
closeStr = "----------------------------------------\n"
+ "| |\n"
+ "| 请按正常方式退出系统 |\n"
+ "| |\n"
+ "----------------------------------------";
//在关闭窗口之前执行用户退出的日志保存
window.onunload = function() {window.location.href = "${ctx}/rbac/index.do?method=logout";}
return closeStr;
}
}
附:
onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。onbeforeunload也是在页面刷新或关闭时调用,onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。onunload是无法阻止页面的更新和关闭的,而 onbeforeunload 可以做到。
参考:http://blog.sina.com.cn/s/blog_5f0583ab01010arl.html
《《方法如下:
function btnAdd_onclick() {
var selRight = document.getElementById("bldnolist");
var strRole = selRight.value;
var selLeft = document.getElementById("supvisionbld");
var bldno = "";//需要更改状态位的楼盘
if (strRole == "") {
alert("请选择");
} else {
for ( var intI = 0; intI < selRight.length; intI++) {
if (selRight.options[intI].selected) {
strRole = selRight.options[intI].value;
bldno = bldno + strRole + ";";
var strRoleName = selRight.options[intI].text;
var objOption1 = document.createElement("<option value='"+strRole+"'>");
objOption1.text = strRoleName;
selLeft.options.add(objOption1);
selRight.options[intI] = null;
intI--;
}
}
}
}
》》方法如下:
function btnDelete_onclick() {
var selRight = document.getElementById("supvisionbld");
var strRole = selRight.value;
var selLeft = document.getElementById("bldnolist");
var bldno = "";//需要更改状态位的楼盘
if (strRole == "") {
alert("请选择");
} else {
for ( var intI = 0; intI < selRight.length; intI++) {
if (selRight.options[intI].selected) {
strRole = selRight.options[intI].value;
var strRoleName = selRight.options[intI].text;
bldno = bldno + strRole + ";";
var objOption1 = document.createElement("<option value='"+strRole+"'>");
objOption1.text = strRoleName;
selLeft.options.add(objOption1);
selRight.options[intI] = null;
intI--;
}
}
}
}
- 大小: 21.4 KB
- 大小: 741 Bytes
- 大小: 1.4 KB
分享到:
相关推荐
页面中的使用到Iframe时,我们如何需要对IFrame中页面是否改变进行判断,我们可以使用到window.onbeforeunload事件.
这个功能其实很简单,就是通过处理window、body或frameset对象或元素的onbeforeunload事件实现的。 这个unbeforeunload的具体用法我就不说了,反正几乎能引起当前页面发生跳转的任何动作,都会触发这个事件。并且它...
页面刷新时先执行onbeforeunload,然后onunload,最后onload。 经过验证我得出的结论是: //对于ie,谷歌,360: //页面加载时只执行onload //页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面...
如果网页不是通过脚本程序打开的(window.open()),调用window.close()脚本关闭窗口前,必须先将window.opener对象置为null,否则浏览器(IE7、IE8)会弹出一个确定关闭的对话框。
Onunload,onbeforeunload都是在刷新或关闭时调用,可以在[removed]脚本中通过[removed]来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。 Onbeforeunload...
他的属性也很丰富,因为我很懒,我就直接复制手册里的东西了: closed 获取引用窗口是否已关闭。 defaultStatus 设置或获取要在窗口底部的状态栏上显示的...获取在父文档中生成 window 的 frame或 iframe 对象。
解决手机浏览器点击后退页面刷新问题,兼容苹果 safari浏览器和安卓浏览器。 js的window.onbeforeunload,onunload,window.addEventListener(‘pagehide‘, () => {}手机浏览器不生效
javascript Onunload与Onbeforeunload使用小结.docx
Resolved issue 1482: Chromedriver cannot handle the alert generated by onbeforeunload event [['OS-All', 'Pri-2']] Resolved issue 1315: |switch_to.window| does not visually switch tabs [['OS-All', 'Pri...
运用onunload事件判断浏览器是刷新还是关闭窗口 兼容firefox5及其他浏览器
}} window.onbeforeunload=verifyClose; 86.当窗体第一次调用时使用的文件句柄:onload() 87.当窗体关闭时调用的文件句柄:onunload() 88.window.location的属性: protocol(http:),hostname(www.example.com),port(80)...
#jQuery FormChange 检查表单的元素是否真的从初始值改变了。 ##入门 包括 jquery.formChange.... window . onbeforeunload = function ( e ) { return 'Your form has changed. Are you sure you want to leave?
onbeforeunload事件 它是这样... function RunOnBeforeUnload() { if (g_blnCheckUnload) { window.event.returnValue = ‘You will lose any unsaved content’; } } [removed]<body onbeforeunload=”RunOnB
Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是...
本文对onbeforeunload与onunload事件的异同点、触发于、可以用在哪些元素以及解决刷新页面时不调用onbeforeunload等等,感兴趣的朋友可以参考下哈
获得用户登陆状态不用说了,判断离开的话就有一点问题了,如果说用户都... [removed] [removed] = function() { if (window.event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { alert(“浏
引言项目开发需要关闭标签页时,弹窗提示用户【数据将不被保存,是否继续操作】实现该功能,则需要监听浏览器是否关闭下面来学习涉及到浏览器关闭的两个方法onbefor
NULL 博文链接:https://primarykeylw.iteye.com/blog/1568120