Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 如何判断网页是通过flash还是通过普通HTML退出/卸载_Javascript_Flash_Events_Window - Fatal编程技术网

Javascript 如何判断网页是通过flash还是通过普通HTML退出/卸载

Javascript 如何判断网页是通过flash还是通过普通HTML退出/卸载,javascript,flash,events,window,Javascript,Flash,Events,Window,我有一个flash应用程序,可以重定向到另一个页面。 我希望捕获任何其他窗口卸载事件(单击链接/提交表单),并警告用户他们将在Flash应用程序中丢失进度 但是,我找不到任何方法来判断URL/窗口卸载的点击/更改是由Flash触发的,而不是由普通链接触发的 是否有任何方法可以检测到这一点,以及它的可靠性如何?无法直接在事件处理程序中判断是什么导致了卸载事件。但是,您可以通过将onclick事件处理程序附加到页面上设置变量的每个链接来实现这一点。在jQuery中: $("A").click(fun

我有一个flash应用程序,可以重定向到另一个页面。 我希望捕获任何其他窗口卸载事件(单击链接/提交表单),并警告用户他们将在Flash应用程序中丢失进度

但是,我找不到任何方法来判断URL/窗口卸载的点击/更改是由Flash触发的,而不是由普通链接触发的


是否有任何方法可以检测到这一点,以及它的可靠性如何?

无法直接在事件处理程序中判断是什么导致了卸载事件。但是,您可以通过将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)
{
//显示消息并等待响应
}
}