2013-05-05 104 views
1

我正在使用Flash Builder 4.6创建Flex应用程序。我正在尝试使用Flex 4.6代码关闭浏览器。这是在Internet Explorer上工作,但不适用于Mozilla Firefox或Google Chrome。我的代码是在这里使用Flex 4.6关闭浏览器无法在Mozilla Firefox或Google Chrome上工作

<?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 2013-05-05 09:30:38

回答

0

香港专业教育学院发现,浏览器是在解释的navigateToUrl的第二个参数不一致。

如果您的SWF是不是在一个HTML框架,你可以使用“_top”,而不是“_self”(它跨浏览器的工作):

navigateToURL(url,"_top"); 

或者只是离开了第二个参数完全(如默认是一样的目标定位“_self”):

navigateToURL(url); 
+0

感谢我的回复,但我的问题没有解决。您的两条建议都不适用于Google Chrome或Firefox。 – 2013-05-06 03:36:07

0

你问什么在大多数浏览器是不允许的,并有很好的理由。你将不得不利用错误或黑客以达到它...

最常见的一个是刷新并在javascript关闭它:

window.open(“”,“_self”,“”); window.close();

我的建议是,不要这样做。

相关问题