onbeforeunload困境:iframe中断与刷新/返回按钮上的恼人消息单击

onbeforeunload困境:iframe中断与刷新/返回按钮上的恼人消息单击,iframe,refresh,onbeforeunload,back-button,Iframe,Refresh,Onbeforeunload,Back Button,我正在实现一个名为的搜索服务。 这个搜索服务只是用完整的网页替换网页结果(是的,我使用了iframe) 我必须处理的问题是iframe破坏页面。 我发现的一个很有希望的解决方案是使用onbeforeunload让用户决定是留下还是离开我的网站。 但这也造成了另一种恼人的行为。 当用户单击“我的网站”中的其他链接时,也会触发“onbeforeunload” 幸运的是,我可以通过将window.onbeforeunload=null放在我网站链接的onclick事件中来解决这个问题。 不幸的是,我不

我正在实现一个名为的搜索服务。 这个搜索服务只是用完整的网页替换网页结果(是的,我使用了
iframe

我必须处理的问题是iframe破坏页面。
我发现的一个很有希望的解决方案是使用
onbeforeunload
让用户决定是留下还是离开我的网站。
但这也造成了另一种恼人的行为。 当用户单击“我的网站”中的其他链接时,也会触发“
onbeforeunload

幸运的是,我可以通过将
window.onbeforeunload=null
放在我网站链接的onclick事件中来解决这个问题。
不幸的是,我不知道如何检测外部事件,如单击“刷新/返回”按钮。
我该怎么解决这个困难呢


非常感谢所有建议和评论。

以本网站为例。在你键入一些回复帖子的文本后,尝试刷新页面。您将看到页面,它将要求您继续工作或退出。在没有回复帖子的情况下进行另一次测试,只需刷新,您将看到确认信息不会显示,因为如果“答案”为空或否,站点正在进行测试。 例如:


函数closeIt()
{
var mytext=document.getElementById(“mytext”).value;
如果(mytext!=“”)
return“此处的任何字符串值都会强制对话框\n”+
“在关闭窗口之前显示。”;
}
window.onbeforeunload=关闭它;

因此,由你决定何时显示该框。还要访问以了解卸载前的
何时以及如何工作
你不仅要担心“破坏框架”网站,还要担心“破坏框架”网站(只是为了了解这场武装冲突中的另一方正在试图做什么)。
<html>
<head>
<script>
function closeIt()
{
  var mytext = document.getElementById("mytext").value;
  if(mytext != "")
     return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <textarea id="mytext"></textarea>
</body>
</html>