2011-11-07 4 views
1

私はこのFlex-JavaScriptコミュニケーションの例を試しています。下記のコードでJavaScriptのcloseイベントを検出してください

しかし、私はそれを達成できません。誰かが私を助けてくれますか?私はプロジェクトのhtml-templateディレクトリの下index.template.htmlに書いた main.mxml

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"> 

    <mx:Script> 
     <![CDATA[ 

      import mx.controls.Alert; 
      private function callJavaScriptFunction():void { 
       if(ExternalInterface.available) 
       { 
        ExternalInterface.call("myBasicFunction"); 
       } 
       else 
       { 
        Alert.show("ExternalInterface unavailable"); 
       } 
      } 
     ]]> 
    </mx:Script> 
    <mx:Button label="click" click="callJavaScriptFunction()" x="200" y="200"/> 
</mx:Application> 

とJavaScript関数:

は、ここに私のコードです。

<script> 

var win; 

function myBasicFunction() { 
    win = window.open('','','width=400,height=300'); 
    win.onbeforeunload=onUnloadHandler; 
} 

function onUnloadHandler() 
{ 
    alert("window closed"); 
} 
</script> 

<mx:Label id="lbl" useHandCursor="true" buttonMode="true" text="Google" selectable="true" mouseChildren="false" mouseEnabled="true" 
       mouseOver="{lbl.setStyle('textDecoration','underline'),lbl.setStyle('color','#0000FF')}" 
       mouseOut="{lbl.setStyle('textDecoration','none'),lbl.setStyle('color','#000000')}" 
       click="navigateToURL(new URLRequest('http://www.google.com'),'_blank')"/> 

答えて

0

2つの可能性があります。

あなたは checkOpen

var win; 
function myBasicFunction() { 
    win = window.open('','','width=200,height=100'); 
} 

function checkOpen() { 
    if (win.closed == true) { 
    alert("Window closed"); 
    } else { 
    alert("window still open"); 
    } 
} 

にタイマーコールで開いているウィンドウを確認することができますまたはあなたが開いているドキュメントにunloadイベントハンドラを追加し、unloadイベントハンドラ内で使用して親ウィンドウの関数を呼び出すことができます

window.opener.closedHandler()。あなたの開いたウィンドウの

メインウィンドウのコード

function myBasicFunction() { 
    window.open('','','width=200,height=100'); 
} 

function myWindowClosedHandler() { 
    // code here 
} 

コードは

<body unload="onUnloadHandler"> 

<script> 
    function onUnloadHandler() 
    { 
     window.opener.myWindowClosedHandler(); 
    } 
</script> 
のように見えるかもしれません
関連する問題