次のコードを使用してブラウザウィンドウの閉鎖を判断していますが、完全に機能します。ただし、ユーザーが「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");