Обнаружить близкое событие JavaScript в приведенном ниже коде - PullRequest
1 голос
/ 07 ноября 2011

Я пробую этот пример связи Flex-JavaScript.

Но я не могу этого достичь.Может кто-нибудь помочь мне?

Вот мой код: 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, которую я написал в index.template.html в каталоге html-templateпроекта.

 <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')"/>

1 Ответ

0 голосов
/ 07 ноября 2011

Существует две возможности.

Вы можете проверить наличие открытого окна с помощью вызова таймера по 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 вызовите функцию в родительском окне, используя 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...