apache-flex - 在 flex/actionscript 中区分 F5 和浏览器关闭事件

标签 apache-flex actionscript adobe browser-refresh

我正在使用以下代码来确定浏览器窗口的关闭,并且它运行良好。但是当用户使用“F5”或单击浏览器刷新按钮刷新页面时会出现问题,即使在这种情况下也会调用同一段代码。

我想知道是否有任何方法可以使用 actionscript 区分浏览器关闭事件和刷新事件

package utils
{
import flash.external.ExternalInterface;

public class ExternalInterfaceUtil
{
    public static function addExternalEventListener( qualifiedEventName:String, callback:Function,callBackAlias:String ):void
    {
        // 1. Expose the callback function via the callBackAlias
        ExternalInterface.addCallback( callBackAlias, callback );
        // 2. Build javascript to execute
        var     jsExecuteCallBack:String = "document.getElementsByName('"+ExternalInterface.objectID+"')[0]."+callBackAlias+"()";
        var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){"+jsExecuteCallBack+"};}";
        // 3. Execute the composed javascript to perform the binding of the external event to the specified callBack function
        ExternalInterface.call( jsBindEvent );
    }
}
}

调用上述实用程序是由

ExternalInterfaceUtil.addExternalEventListener("window.onunload", handleLogout, "unloadFlex");

最佳答案

伪代码:

public static function addExternalEventListener( qualifiedEventName:String, callback:Function,callBackAlias:String ):void
{
   if(lastKeyPressed.KeyCode != 116)
   {
    // 1. Expose the callback function via the callBackAlias
    ExternalInterface.addCallback( callBackAlias, callback );
    // 2. Build javascript to execute
    var     jsExecuteCallBack:String = "document.getElementsByName('"+ExternalInterface.objectID+"')[0]."+callBackAlias+"()";
    var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){"+jsExecuteCallBack+"};}";
    // 3. Execute the composed javascript to perform the binding of the external event to the specified callBack function
    ExternalInterface.call( jsBindEvent );
 }
}

关于apache-flex - 在 flex/actionscript 中区分 F5 和浏览器关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387212/

相关文章:

actionscript-3 - "^"是 Math.pow() 的简写吗?

javascript - Action Script 3. 检查数组是否有元素不跳转,然后跳转

ios - 为 ios 构建时如何设置标志 -ObjC -all_load

java - CQ 5.5 i18n 和接受语言 header

apache-flex - 使用 Actionscript 更改字符串中的字符

apache-flex - 更改 textfield() 鼠标悬停的光标

javascript - Flex 3 和 Javascript 分层问题

javascript - 从 Flex 调用 JavaScript

apache-flex - ActionScript /Flex : bitwise AND/OR over 32-bits

html - Adobe Edge Code 和 Brackets 有什么区别?