在jsp中点击网页关闭按钮怎么让它先执行一段javascript后再关闭

如题所述

到了web浏览器上不管是jsp,还是asp,php等等,最终生成的内容都是html。如果需要交互必定就是javascript。以关闭页面的js来说,你想要的功能,两种方式:
第一、直接执行代码所有执行的代码不包含ajax请求。
function close()
{
//你要执行的非ajax异步任务或代码写在这里
if(condition){
console.log("execute my task");
for(var i = 0; i < 100; i++)
{
console.log(i+"="+i)
}
}else{
//不会执行后面的关闭代码
alert("warning info");
return;
}
//写try的目的是因为try语句中的内容,某些浏览器不一定支持
try{
window.openner = null;
window.open("_blank","_self","");
window.close();

}catch(e){
winddow.close();
}
}

第二、有ajax请求
方式两种,以jquery的ajax为例
1、采用异步请求,在异步请求完成后关闭窗口
function close()
{
//your other codes go here

.... ...
var myurl = "";
$.ajax({
//注意这歌参数设置是否异步请求,这个设置成异步的
async:true,
url:myurl,
type:"post",
data:{sessionid:"1111-1111-1111-222"},
dataType:"json",
success:function(response)
{
//your other codes go here
... ...
try{
window.openner = null;
window.open("_blank","_self","");
window.close();

}catch(e){
winddow.close();
}
},
error:function(xhr,e,emsg){
//ajax 出错的时候回调处理方法
}
});
}
2、采用同步请求
function close()
{
//your other codes go here

.... ...
var myurl = "";
$.ajax({
//注意这歌参数设置是否异步请求,这个设置成异步的
async:false,
url:myurl,
type:"post",
data:{sessionid:"1111-1111-1111-222"},
dataType:"json",
success:function(response)
{
//your other codes go here
... ...
},
error:function(xhr,e,emsg){
//ajax 出错的时候回调处理方法
}
});
try{
window.openner = null;
window.open("_blank","_self","");
window.close();

}catch(e){
winddow.close();
}
}
最后不知道你品出我写出来的为什么会那样?我解释一下ajax异步与同步的区别,帮助你理解:
同步,代码执行到ajax这块会一直等到ajax请求结束再执行ajax后面的代码;异步,碰到ajax会放倒一个任务队列中去,任务执行后采取会掉通知进行处理。并且ajax任务放入队列后立马会执行后续的代码,不等ajax请求完毕。
希望对你有帮助。
温馨提示:内容为网友见解,仅供参考
无其他回答

js中 当关闭该页面时,刷新另一个页面
这要求刷新的窗口有一个名称,例如windowA。在要关闭的页面加入 如果要刷新的是将要关闭页面的父窗口,则可以在要关闭的页面加入

如何在关闭页面前调用一个js函数
方法一:试试这样,将body里加入onunload事件,当页面关闭前会先执行这个函数,如: 这样的话,不需要点击关闭按钮,反正只要关闭页面就会执行这个函数。方法二:你有个关闭按钮,那么你的关闭按钮可能用的是window.close函数,但是这里你可以自定义这个按钮的函数,点击按钮的时候执行另外一个函数,如执行下...

jsp弹出框如何关闭并刷新之前页面
首先添加 按钮click事件,事件中 写关闭b.jsp页面的脚本 判断 b.jsp页面关闭之后,重新 load a.jsp 页面就可以了

jsp系统如何退出时候自动关闭浏览器
在弹出的页面中调用js来关闭即可:jsp退出后显示这个页面: function exit(){ var close = window.confirm('Close window?');if(close){ window.close();} } Exit...

jsp中怎么关闭窗口?
如果你 执行close()方法去关闭一个不是由脚本程序打开的窗口,就会出现一个确认对话框让用户选择是否关闭窗口。如果在历史列表中只有当前一个记录,那么在 Navigator中就不会出现对话框。然而,如果你使用close()退出最后运行的浏览器实例,确认对话框就会出现。也就是说, 我用window.open一个窗口, ...

如何做可以实现jsp中点击按钮后执行一段java程序(我做的时候不点按钮j...
你要把点击按钮后要执行的代码放到一个函数中(function aa(){\/\/要执行的代码})然后通过onclick="aa()"操作

在一个jsp页面中如何通过点击一个按钮转到另一个jsp页面
返回上一页,代码:如果要在点击按钮提交时验证输入款是否填入了内容,当用户名输入或者其它的为空的时候,点击按钮不提交,可以按下列的方法做。代码如下: fuction open(){ if(!document.form_name.username.value) { alert("请输入用户名!"); document.form_name.username.focus(); return false...

如何网页中单击某个按钮后执行一段代码
方法有二:一:在按钮后跟一个onclick动作 二:在表单的action参数中加一个验证的文件,例如yz.asp 在yz.asp中把表单中的值接收过来进行判断就可以了.

在JSP中,怎么自动关闭一个页面
1.采用javascript 代码如下: 或者:代码如下: 2.采用HttpSession 清空session, 退出当前登录.代码如下:退出 logout.jsp 主要代码:代码如下:< session.invalidate();response.sendRedirect("index.jsp");> 返回到index.jsp

jsp关闭页面触发事件
用JS试试?类似于这种: window.onbeforeunload = onbeforeunload_handler;function onbeforeunload_handler(){ var waring = "确定关闭浏览器?";return waring;} window.onunload = onunload_handler;function onunload_handler(){ var waring = "谢谢光临";alert(waring);} ...

相似回答