我知道这可能是之前讨论过的,但我想知道Facebook如何成功地实现这一功能 - 在https://www.facebook.com/messages/new中: 在撰写邮件然后尝试按下浏览器中的“后退”按钮时,我会获得Facebook自己的自定义对话框,该对话框会验证我是否真的要离开页面。
我知道我可以使用beforeunload
事件来显示原生对话框,但如何创建自己的自定义对话框,如Facebook的。
我认为一种方法可能是使用jQuery并在整个链接集上运行一个事件。
但它如何适用于其他一切(例如浏览器中的“后退”按钮)。
我认为它可能与pushState控件有关,或者facebook可能使用了一些客户端框架,而当按下'Back'时我实际上并没有卸载窗口。
无论如何,很乐意获得有关此问题的一些信息。
答案 0 :(得分:0)
它只是HTML,CSS和JS。在撰写邮件(实际上只是表单)的情况下,设置您的beforeunload
事件并检查是否已填写任何表单字段。如果是,请显示您的自定义html。也许这可以帮助您入门:http://jsbin.com/ronuyo/1/