Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模拟onbeforeunload和onunload_Javascript_Google Chrome_Cross Browser_Onbeforeunload_Onunload - Fatal编程技术网

Javascript 模拟onbeforeunload和onunload

Javascript 模拟onbeforeunload和onunload,javascript,google-chrome,cross-browser,onbeforeunload,onunload,Javascript,Google Chrome,Cross Browser,Onbeforeunload,Onunload,我正在不同的浏览器上测试onbeforeuload和onunload消息机制,对于移动测试,我通常使用chrome emulator。然而,当我试图通过在模拟打开时刷新chrome窗口来模拟onbeforeunload事件时,我会得到chrome的“确认重新加载”对话框 这些对话框在不同的浏览器中有所不同,我认为chrome没有很好地模拟这些对话框。 (我希望它与Safari类似) 如何在卸载前测试多个移动设备的和onunload机制?您应该能够使用以下方法进行测试: 只需将其连接到一个按钮,

我正在不同的浏览器上测试
onbeforeuload
onunload
消息机制,对于移动测试,我通常使用chrome emulator。然而,当我试图通过在模拟打开时刷新chrome窗口来模拟
onbeforeunload
事件时,我会得到chrome的“确认重新加载”对话框

这些对话框在不同的浏览器中有所不同,我认为chrome没有很好地模拟这些对话框。
(我希望它与Safari类似)


如何在卸载前测试多个移动设备的
onunload
机制?

您应该能够使用以下方法进行测试:


只需将其连接到一个按钮,您就可以开始了

您观察到的行为是正确的-每个浏览器都以自己的方式在卸载之前处理On,并显示特定的窗口。Chrome显示的窗口中有您看到的文本,它与Safari one相对应。请注意,这些事件上显示的窗口是特定于浏览器的,不能100%自定义,因此您将始终在Chrome中显示“确认重新加载”文本。@SzybkiSasza您好,事实上,我希望当emulator打开时,Chrome上的对话框看起来会有所不同,但正如你所说,每一个都是不同的,chrome显示了它自己的对话框,而不是一个被模拟的对话框。所以我正在寻找方法或机制来测试这些东西。老实说,你可能不能用简单的方法来做这件事。若你们有Android驱动的设备,并且有大约5-10分钟的空闲时间,你们可以尝试在真正的设备上使用。它很容易设置,允许您通过隧道将计算机部署用于移动设备,并在PC Chrome中控制和调试移动浏览器。抱歉,它没有正确模拟事件,但在使用按钮调用时,它不会显示
确认重新加载
对话框,使用F5显示对话框。选中此JSFIDLE以模拟F5,单击JSFIDLE菜单中的“更新”。我必须称赞这是一次非常聪明的尝试非常有趣。你说得对,它除了显示对话外,什么都可以做。另外,我不能在原来的帖子上留下评论,但我可能误解了你最初的要求。你在寻找Chrome的模拟器来显示Safari/Firefox/IE/etc对话框吗?Chrome emulator仅用于布局,也不是100%准确。我用它在iPad上测试网页布局,但当我在实际的iPad上加载页面时,有一些细微的差别。我不是很挑剔,任何解决方案都会很受欢迎(有chrome的,没有)。我正在寻找的是一种在移动设备上更好地测试这些功能的方法,而不需要每台设备都在手边。
$('#buttonFoo').click(function(){
    $(window).trigger('beforeunload');
});