2012-02-21 83 views
2

我正在写一段JavaScript,它在运行时停止计时器(活动== 1),并关闭窗口,单击链接,...Javascript在window.onbeforeunload中返回不能在Chrome中工作

我决定使用window.onbeforeunload函数,它在IE和FF上很好用,但不在Chrome上。

当我在Chrome中运行计时器时关闭窗口时,确实收到警告,表示我离开页面时显示“false”。

下面是相关代码:

function SetEndTimeOnClose(lngPersonID,lngToDoID){ 
if(active == 1){ 
    var answer = confirm("Wil je de tijd stoppen?"); 
    if (answer){   
     try{ 
      StopStopwatch(); 
      SetEndTime(lngPersonID,lngToDoID); 
     } 
     catch(err){ 
     }; 
     return true;  
    } 
    else{ 
     return false; 
    } 
} 
} 

window.onbeforeunload = function(){ 
    return SetEndTimeOnClose(<%=lngOpenPersonID%>,<%=lngToDoID%>); 
} 
+0

Firefox和IE显然允许'确认()'调用在“beforeunload”处理工作,但我认为Chrome正在这里做正确的事。处理程序中的confirm()是多余的。 – Pointy 2012-02-21 16:28:37

回答

1

MDN,你需要返回将显示确认对话框中的字符串。

+2

Chrome在这方面没有解决方法吗?奇怪的是,它在IE和FF中完美运行。 – 2012-02-21 18:51:50

+0

奇怪的是,Mozilla FF的行为与Mozilla的开发人员网络中描述的行为不同。你是否尝试过'返回'Wil je de tijd stoppen?';'从处理程序中调用'StopStopwatch(); SetEndTime(lngPersonID,lngToDoID);''从'unload'事件处理程序中? – 2012-02-21 20:09:52

相关问题