【问题标题】:How to tell if a web page is being exited/unloaded via flash versus via normal HTML如何判断网页是通过 Flash 还是通过普通 HTML 退出/卸载
【发布时间】:2010-02-03 12:14:25
【问题描述】:

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

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

有什么方法可以检测到这一点,它的可靠性如何?

【问题讨论】:

    标签: javascript flash events window


    【解决方案1】:

    无法直接在事件处理程序中判断导致卸载事件的原因。但是,您可以通过将 onclick 事件处理程序附加到页面上设置变量的每个链接来实现此目的。在 jQuery 中:

    $("A").click(function(){window.clickedLink = this});
    

    您可能会在您的卸载事件中阅读 clickedLink 并找出区别。

    【讨论】:

      【解决方案2】:

      如何从 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-07
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 1970-01-01
        • 2019-05-29
        • 2012-05-01
        相关资源
        最近更新 更多