时间线

My Life My Style

在Flex应用里关闭浏览器

Flex开发的时候,会有关闭浏览器的需求~比如:点击退出按钮~
遇到这样的需求时可以如下处理:

<?xml version="1.0"?>
<mx:Application xmlns:mx='http://www.adobe.com/2006/mxml' >
<mx:Script>
           <![CDATA[
                 private function closeIE():void{
                       var request:URLRequest = new URLRequest("javascript:window.close()");
                       navigateToURL(request,"_self");
                 }
           ]]>
</mx:Script>

<mx:Panel title="My IE close App">
      <mx:Button textAlign="center" label="Close current IE" click="closeIE()"/>
</mx:Panel>

在Actionscript 2及以前,要打开任何网址,只需调用全局函数getURL()即可。在Actionscript 3中,已经取消了getURL()这个全局函数,取而代之的是flash.net包中的函数navigateToURL(),API格式如下:
public function navigateToURL(request:URLRequest,window:String=null):void

如果你想在flex应用中关闭浏览器窗口,可以利用navigateToURL调用javascript来实现,网上搜索得到如下示例:

引用
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function closeIE():void{
var request:URLRequest = new URLRequest("javascript:window.close()");
navigateToURL(request,"_self");
}
]]>
</mx:Script>
<mx:Button textAlign="center" label="Close current IE" click="closeIE()"/>
</mx:Application>

测试一下,你会发现关闭窗口之前会弹出确认的信息提示。如果想关闭窗口且不弹出信息窗口,将上述代码稍加改动(改动request变量声明那一行,注意黑体部分)即可实现。

引用
var request:URLRequest = new URLRequest("javascript:window.opener=null;window.close()");

实际上还可以更简单一些,如下:

引用
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Button textAlign="center" label="Close current IE" click="navigateToURL(new URLRequest('javascript:window.opener=null;window.close()'),'_self')"/>
</mx:Application>

===================

升级:可以加上Alert,确认是否关闭

HTML代码

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

2 Responses to 在Flex应用里关闭浏览器

  1. 沧海 04月 28, 2009 @ 11:00 am

    不错,很好!为初学者提供了帮助。
    Hugo 于 2009-04-29 01:39 PM 回复共同学习^_^~

  2. qe 06月 29, 2009 @ 12:00 pm

    为啥,我关闭窗口还是会弹出确认的信息提示?
    var request:URLRequest = new
    URLRequest("javascript:window.opener=null;window.close()");
    navigateToURL(request,'_self');

发表评论

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

Please log in to WordPress.com to post a comment to your blog.

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Connecting to %s

加关注

Get every new post delivered to your Inbox.