Flex ExternalInterface не запускается в Safari (работает везде!) - PullRequest
0 голосов
/ 07 августа 2010

Я знаю, что были другие вопросы о том, как заставить JavaScript / Flex ExternalInterface играть хорошо, но я думаю, что это странный вопрос.Он отлично работает в любом браузере , за исключением Safari (на Mac).Chrome, IE, Firefox - все в порядке, но Safari, нет, просто не сработает.Я скопировал мой код ниже, кто-нибудь может понять, почему он не работает в Safari pls?

(диалоговое окно «Вы уверены» появляется в Safari, но метод в приложении Flex просто не работаетпозвоните)

Ура Алекс

Код Flex:

        if(ExternalInterface.available){
          ExternalInterface.addCallback("flexShutdownHandler",flexShutdownHandler);
          fnMyLogger("External interface available - setting shutdownhook");
        }else{
          fnMyLogger("External interface *NOT* available");
        }

        private function flexShutdownHandler():void{
            fnMyLogger("*****************");
            fnMyLogger("** Logging out **");
            fnMyLogger("*****************");
            // other code as well here where I 
            //   can tell doesn't get called ....


        }

Код JavaScript:

    <script language="JavaScript" type="text/javascript">
        function thisFlexApp(flexName) {
            if (navigator.appName.indexOf("Microsoft") != -1 || navigator.appName.indexOf("MSIE") != -1) {
                return window[flexName];
            } else {
                return document.getElementById(flexName);
            }
        }

        function shutdownHook(){
            window.alert ("are you sure ?");
            thisFlexApp("MyFlexApp").flexShutdownHandler();
        }
        //Set up notification for flex app when page unloads
        window.onbeforeunload = shutdownHook;

    </script>

1 Ответ

0 голосов
/ 08 августа 2010

обычно при возникновении ошибок в ExternalInterface проблема заключается не в показанном вами коде, а в коде встраивания SWF.

в качестве первого шага, я бы порекомендовал вам встроить SWF-файлы с SWFObject в HTML-страницу, это обычно решит проблему Safari Mac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...