使用JavaScript防止意外移出网站
没有什么比在文本框中键入长消息,不小心向后移动,或者单击链接并离开页面,从而丢失您可能输入的数据更令人烦恼的了。有一种解决方案可以阻止这种情况的发生,它涉及onbeforeunload事件。
尽管从技术上讲不是完全受支持的事件,但是onbeforeunload恰好在页面从缓存中卸载之前运行。此后立即发生onunload事件,到那时为时已晚。
为了防止用户在没有任何形式的警告的情况下移出当前页面,您将需要返回带有onbeforeunload事件的文本。在某些将文本用作消息一部分的浏览器中,某些浏览器将忽略该消息,但仍然继续。
要在其中合并此功能的页面中包含以下正文标记。
这将产生类似以下窗口的内容。
您还可以通过以下方式使用window对象在代码中启用此功能。
现在,您可以在表单本身中包含此脚本,以防止用户在填写信息时离开它。这使您不必将其放在每页上,这很快就很烦人。
请注意,这在Opera中不起作用,并且似乎不可能奏效,因为Opera团队说这不是bug,尽管事实上我可以找到的所有其他网络浏览器都可以这样做。