2013-05-05 2 views
1

Я использую Flash Builder 4.6, создавая приложение Flex. Я пытаюсь закрыть браузер, используя flex 4.6 code.This работает в Internet Explore, но не работает в Mozilla Firefox или Google Chrome. Мой код здесьЗакрытие браузера не работает на Mozilla Firefox или Google Chrome с помощью Flex 4.6

<?xml version="1.0"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  
     xmlns:mx="library://ns.adobe.com/flex/mx"  
      xmlns:s="library://ns.adobe.com/flex/spark"> 

<fx:Script> 
    <![CDATA[ 
protected function btnClose_clickHandler(event:MouseEvent):void 
     { 
      var url:URLRequest = new URLRequest("javascript:window.close()"); 
      navigateToURL(url,"_self");    
     } 

    ]]> 
</fx:Script> 
<s:Button id="btnClose" x="44" y="47" label="Close Browser" click="btnClose_clickHandler(event)"/> 

+0

Это скорее вопрос JavaScript, чем один Flex. Похоже, что IE является единственным, кто назначит текущее окно переменной 'window'. – RIAstar

ответ

0

Ive обнаружил, что браузеры непоследовательны в интерпретации второго параметра navigateToURL.

Если SWF не в HTML кадра, вы можете использовать «_top» вместо «_self» (который делает работу во всех браузерах):

navigateToURL(url,"_top"); 

Или просто оставить свой второй параметр полностью (как по умолчанию такого же, как «_self-мишени»):

navigateToURL(url); 
+0

спасибо за мой ответ, но моя проблема не решена. Оба ваших предложения не работают на Google Chrome или Firefox. –

0

Что вы просите не допускаются в большинстве браузеров, и по понятным причинам. Вы должны использовать ошибки или хаки для ее достижения ...

Популярный один был, чтобы обновить и закрыть его в JavaScript:

window.open («», «_self», «»); window.close();

Мой совет был бы, не делайте этого.