我编写了一个显示测验列表的代码,当选择一个测验时,会弹出一个新窗口并运行在线测验。问题是,当窗口关闭时,计时器应该到期,即在窗口关闭之前应该提交表格。生成新窗口的代码如下:
var radios = document.getElementsByName("quizname");
var flag=0;
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
flag=1;
var x=radios[i].value;
var z=radios[i].value;
break;
}
}
if(flag==0)
{
alert("Choose an option!!");
exit;
}
var x="http://127.0.0.1/example/timedrunquiz.php?y="+x;
var win=window.open(x,z,"fullscreen=yes,scrollbars=yes");
win.focus();
我使用win.onbeforeunload
,但我无法完成任务。在结束前我应该怎么做才能提交表格?提前谢谢!
答案 0 :(得分:0)
不确定这是否是正确的方法。你应该在窗口上有一个提交按钮,听众可以在提交完成后调用win.close();
。
现在,为了确保用户实际提交任何内容,您应该使用win.onbeforeunload
来确认用户是否确实要关闭页面,如下所示:
win.onbeforeunload = function() {
return confirm('Do you really want to exit? All your progress would be lost');
}
答案 1 :(得分:0)
如果您想在结束前提交表单,可以使用ajax提交表单
function callback()
{
$.ajax({
type: "POST",
url: "yourUrl",
data: 'YourData',
});
return "You are about to leave this page";
}
win.onbeforeunload = callBack;