Javascript中的是/否框,比如StackOverflow中的这个框?

Javascript中的是/否框,比如StackOverflow中的这个框?,javascript,Javascript,我想知道,当用户试图离开页面时,如何显示确认框,就像StackOverflow中的这个框,当您试图关闭“提问”页面时 提前谢谢你。这是基于浏览器的 只要您实现了标记,并且在表单中键入了一些内容,并且在Google Chrome中,它就会提示您该消息。您希望捕获窗口的onbeforeuload事件。然后,如果返回字符串,浏览器将在提示中显示消息。下面是。在javascript中,将函数附加到窗口。onbeforeunload,如下所示: window.unbeforeunload = functi

我想知道,当用户试图离开页面时,如何显示确认框,就像StackOverflow中的这个框,当您试图关闭“提问”页面时

提前谢谢你。

这是基于浏览器的


只要您实现了
标记,并且在表单中键入了一些内容,并且在Google Chrome中,它就会提示您该消息。

您希望捕获
窗口的
onbeforeuload
事件。然后,如果返回字符串,浏览器将在提示中显示消息。下面是。

在javascript中,将函数附加到
窗口。onbeforeunload
,如下所示:

window.unbeforeunload = function (e)
{
    // return (prompt ('Are you sure you want to exit?'));

    // EDIT: Amended version below: 
    var e = e || window.event;
    if (e) e.returnValue = 'Your exit prompt';
    return 'Your exit prompt';
}
编辑: 正如下面的评论所表明的,我误解了活动的运作。它现在应该按预期工作

Ref:

您可以使用事件来捕获此消息。如果textarea中有任何值,则会显示一条警告消息。

可能是dupe:,但您可以通过向window.onbeforeunload事件添加一个委托来完成此操作

<script type="text/javascript">
   window.onbeforeunload = function() {
      //will show a dialog asking the user if 
      //they want to navigate away from the current page
      // ok will cause the navigation to continue, 
      // cancel will cause the user to remain on the current page
      return "Use this text to direct the user to take action.";
   }
</script>

window.onbeforeunload=函数(){
//将显示一个对话框,询问用户是否
//他们想离开当前页面
//ok将导致导航继续,
//取消将导致用户保留在当前页面上
return“使用此文本指导用户采取行动。”;
}

更新:doh!更新代码以实现OP真正想要的功能:D

实际上,所需的只是以下内容:

window.onbeforeunload = function(){ return "You should save your stuff."; }

这也是一种愚弄:

我怀疑你误解了这个问题。。。我会在你失去一大堆分数之前删除这个答案:)这行不通。您需要删除“prompt”并返回字符串:
return“您将丢失所有未保存的更改”它将在返回的文本周围加上类似“您确定要离开此页面吗?”的内容,然后是您的文本,然后是“按OK继续,或按Cancel停留在当前页面”。Renesis是对的-这是此脚本的真正问题。这是对该函数用途的误解。应该注意的是,虽然IE添加了周围的文本,但并非所有浏览器都这样做。@tehMick&Renesis-你说得对,我错了;在测试后,根据Lyresults修改了我的答案——我从Firefox中提取了上面的周围文本,Safari显示了基本相同的文本。Chrome没有显示周围的文本。-1在评论中指出的地方返回false,实际上会弹出一个对话框,上面写着“false”;