onbeforeunload 困境:iframe 中断与刷新/后退按钮点击时烦人的消息
我正在实现一个名为 SearchInsideOut 的搜索服务。 此搜索服务只是将网页结果替换为完整网页(是的,我使用了 iframe
)。
我必须处理的问题是 iframe 破坏页面。
我发现的有前途的解决方案是使用 onbeforeunload
让用户决定是留下还是离开我的网站。
但这也造成了另一种令人讨厌的行为。 当用户点击我网站中的其他链接时,onbeforeunload
也会被触发。
幸运的是,我可以通过将 window.onbeforeunload=null
放置在我网站的这些链接的 onclick 事件中来解决此问题。
不幸的是,我不知道如何检测外部事件,例如单击“刷新/返回”按钮。
我该怎么做才能解决这个困难呢?
高度赞赏所有建议和意见。
I'm implementing a search service called SearchInsideOut.
This search service simply replaces web page results by full web pages (Yes, I used iframe
).
The problem I have to deal with is iframe-breaking pages.
The promising solution I found is using onbeforeunload
to let users decide whether to stay or leave my site.
But this also creates another annoying behavior.
When users click other links in my site, onbeforeunload
will also be triggered.
Fortunately, I could solve this case by placing window.onbeforeunload=null
in the onclick event of those links of my site.
Unfortunately, I have no idea how to detect external events like clicking "refresh/back" buttons.
What should I do to solve this difficulty?
All suggestions and comments are highly appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以这个网站为例。在您输入一些回复帖子的文字后尝试刷新页面。您将看到该页面会要求您继续工作或退出。在不回复帖子的情况下再进行一次测试,只需刷新即可,您会看到确认不会显示,因为该网站正在测试“答案”是否为空。
示例:
因此,由您决定该框何时显示或不显示。另请访问 Microsoft Msdn 了解何时以及
onbeforeunload
的工作原理Take as example this site. Try to refresh the page after u typed some text answering to a post. You will see that the page it will ask you to continue ur work or exit. Make another test without answering to a post, just refresh, you will see that the confirm will not showed, because the site is making a test if the "answer" is empty or not.
Example:
So it's up to u to decide when the box will show or not. Visit also Microsoft Msdn to understand when and how
onbeforeunload
works