用Form+iFrame
<iframe id="if" class="fr" name="fr"></iframe>
<form target="fr" action="/Home/test">
<input type="submit" class="submit" value="Start" onclick="return sub()"/>
</form>
<script>
//猎取iframe对象
var iframe = document.getElementById("if");
var flag = 0;
//JS绑定事宜
//el:示意选中的dom元素
//type:事宜称号
//fn:事宜处置惩罚器
function addEvent(el, type, fn) {
if (el.addEventListener) {
//绝大多数非IE内核浏览器
el.addEventListener(type, fn, false);
} else if (el.attachEvent) {
//IE内核
el.attachEvent('on' + type, function () {
fn.call(el);
});
} else {
//挑选dom元素毛病
throw new Error('不支持该dom元素');
}
}
addEvent(iframe, 'load', function () {
if (flag != 0) {
alert("实行终了!");
//事宜这里处置惩罚完就把flag变成0
flag = 0;
}
});
function sub() {
//假如flag为0,申明是刚进来没有要求过。
//然后把它变成1
//申明我已经在要求了
//关照事宜那里预备处置惩罚
if (flag == 0) {
flag = 1;
}
return true;
}
</script>
关于标志位:
也能够应用服务器返回值来推断。事宜处置惩罚器中,推断iframe中是不是有服务器返回值,没有申明是刚进来,没有要求过。有的话就示意是因为要求而触发的onload事宜。事宜处置惩罚器处置惩罚完以后,再把iframe清空。就是如许。本质上跟第一种是一样的。