方法1基本无解,confirm()一类的东东根本就是聋子的耳朵。
方法2可以在提示以后用AJAX处理交卷的善后工作
<script>
function window.onbeforeunload() {
//改变clientX,clientY的判断,也可以检测到用户通过任务栏右键关闭,自己摸索一下具体参数
if (event.clientX>document.body.clientWidth && event.clientY <0 ||event.altKey)
//点击了取消,会留在页面,这个时候让用户自己继续答卷
window.event.returnValue="\n\n\n确定交卷吗?如果尚未完成答卷,请点击[取消]。\n\n\n";
//保险起见,用AJAX将该保存的数据送到后台暂时保存。
//无论用户点了确定还是取消这里都执行的
}
</script>
方法2可以在提示以后用AJAX处理交卷的善后工作
<script>
function window.onbeforeunload() {
//改变clientX,clientY的判断,也可以检测到用户通过任务栏右键关闭,自己摸索一下具体参数
if (event.clientX>document.body.clientWidth && event.clientY <0 ||event.altKey)
//点击了取消,会留在页面,这个时候让用户自己继续答卷
window.event.returnValue="\n\n\n确定交卷吗?如果尚未完成答卷,请点击[取消]。\n\n\n";
//保险起见,用AJAX将该保存的数据送到后台暂时保存。
//无论用户点了确定还是取消这里都执行的
}
</script>
===============
2楼高手,我刚才测了下,如果这样的话,那也就是说,无论点确定还是取消,那都会进行交卷操作了?(我想要的是只有在确定后才交卷,而取消,不交卷。)而且,我在你写这句话的地方写的:alert("aaa");发现:先弹出个aaa的提示框,然后才是那个确定和取消的框。这是怎么回事儿啊?
反正到现在我也没有找到好的办法,实现点了[取消]后不执行returnValue下面的程序。如果你找到了务必告诉我,呵呵
<script language="javascript" type="text/javascript">
function window.onbeforeunload()
{
if (event.clientX>document.body.clientWidth && event.clientY<0||event.altKey)
{
window.event.returnValue="确认交卷??";
}
}
</script> 如果抓到确认,Top.location.href="后台处理页";
在后台处理页写好处理代码或者在unload也可,只不过让用户, 多点一次关闭按钮而已.在后台处理页写: window.close() 。即我说的: 多点一次关闭按钮!
return false;
让该方法一直是返回的false的,则不毕执行了.