Javascript 如何判断网页是通过flash还是通过普通HTML退出/卸载
我有一个flash应用程序,可以重定向到另一个页面。 我希望捕获任何其他窗口卸载事件(单击链接/提交表单),并警告用户他们将在Flash应用程序中丢失进度 但是,我找不到任何方法来判断URL/窗口卸载的点击/更改是由Flash触发的,而不是由普通链接触发的Javascript 如何判断网页是通过flash还是通过普通HTML退出/卸载,javascript,flash,events,window,Javascript,Flash,Events,Window,我有一个flash应用程序,可以重定向到另一个页面。 我希望捕获任何其他窗口卸载事件(单击链接/提交表单),并警告用户他们将在Flash应用程序中丢失进度 但是,我找不到任何方法来判断URL/窗口卸载的点击/更改是由Flash触发的,而不是由普通链接触发的 是否有任何方法可以检测到这一点,以及它的可靠性如何?无法直接在事件处理程序中判断是什么导致了卸载事件。但是,您可以通过将onclick事件处理程序附加到页面上设置变量的每个链接来实现这一点。在jQuery中: $("A").click(fun
是否有任何方法可以检测到这一点,以及它的可靠性如何?无法直接在事件处理程序中判断是什么导致了卸载事件。但是,您可以通过将onclick事件处理程序附加到页面上设置变量的每个链接来实现这一点。在jQuery中:
$("A").click(function(){window.clickedLink = this});
您可以阅读卸载事件中的Clicked链接并指出区别。如何从Flash重定向到其他页面 您可以使用Javascript函数重定向,并从Flash(使用ExternalInterface)调用它。当您调用此重定向时,您设置了一个特定的标志,指示您正在从Flash重定向。然后为窗口卸载事件设置侦听器,并检查是否设置了该标志。如果没有,您可以向用户显示消息。否则,只需跳过此项并重定向即可
<script>
var callFromFlash = false;
window.unload = unloadPage;
//call this function from Flash using ExternalInterface
function doRedirect(url)
{
callFromFlash = true;
//redirecting
window.location.href = url;
}
function unloadPage()
{
if(!callFromFlash)
{
//show message and wait for response
}
}
</script>
var callFromFlash=false;
window.unload=unloadPage;
//使用ExternalInterface从Flash调用此函数
函数doRedirect(url)
{
callFromFlash=true;
//重定向
window.location.href=url;
}
函数unloadPage()
{
如果(!callFromFlash)
{
//显示消息并等待响应
}
}