BrowserManager的简单应用

本文介绍了如何利用BrowserManager管理器在Flex应用中改变HTML页面标题,并从当前URL读取解析数据,包括基本URL、片段、URL参数等,通过实例代码演示了具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BrowserManager是一个Singleton 管理器,用于充当浏览器和应用程序之间的代理。使用它可以访问浏览器地址栏中的URL,这与访问Javascript中的document.location 属性类似。这一节我们将介绍其简单应用。

一、改变HTML页面标题

使用setTitle更改浏览器标题栏中的文本。看如下代码:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.managers.IBrowserManager;
            import mx.managers.BrowserManager;
            private function changePageTitle(newTitle:String) : void
            {
                // 取得browser manager单例
                var bm:IBrowserManager = BrowserManager.getInstance();
                // 初始化browser manager
                bm.init();
                // 改变HTML页面标题
                bm.setTitle( newTitle );
            }
        ]]>
    </mx:Script>
    <mx:Hbox>
        <mx:Button label="按钮一" click="changePageTitle('标题一')"/>
        <mx:Button label="按钮二" click="changePageTitle('标题二')"/>
    </mx:Hbox>
</mx:Application>

二、从浏览器当前URL读取解析数据

      这里还需要用到URLUtil类。在Flex 3中使用深层链接(Deep linking)时,链接分成两个部分:基本(base)和片段(fragment)。基本是当前URL显示在浏览器地址栏中时,#之前的部分;而片段是前URL 显示在浏览器地址栏中时,#之后的部分。片段用来将值传给Flex应用,当然也可以用来管理浏览历史。注意用:来分隔URL片段中的名称=值对。看如下代码:

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    creationComplete="parseURL()">
 
    <mx:Script>
        <![CDATA[
            import mx.utils.ObjectUtil;
            import mx.managers.IBrowserManager;
            import mx.managers.BrowserManager;
            import mx.utils.URLUtil;
 
            private function parseURL() : void
            {
                var bm:IBrowserManager = BrowserManager.getInstance();
                bm.init();
                // 输出url参数值
                output.text += "Full URL:\n" + bm.url + "\n\n";
                output.text += "Base URL:\n" + bm.base + "\n\n";
                output.text += "URL Fragment:\n" + bm.fragment + "\n\n";
                // 使用URLUtil将url参数转换成actionscript object
                var o:Object = URLUtil.stringToObject(bm.fragment);
                output.text += "Object:\n" + ObjectUtil.toString(o) + "\n\n";
                output.text += "name:\n" + o.name + "\n\n";
                output.text += "index:\n" + o.index + "\n\n";
                output.text += "productId:\n" + o.productId + "\n\n";
 
                // 使用URLUtil解析URL
                output.text += "URL Port:\n" + URLUtil.getPort(bm.url) + "\n\n";
                output.text += "URL Protocol:\n" + URLUtil.getProtocol(bm.url) + "\n \n";
                output.text += "URL Server:\n" + URLUtil.getServerName(bm.url) + "\n\n";
                output.text += "URL Server with Port:\n" + URLUtil.getServerNameWithPort( bm.url );
            }
 
        ]]>
    </mx:Script>
    <mx:TextArea id="output" left="10" top="10" bottom="10" right="10"/>
</mx:Application>

输入服务端URL,如http://localhost/Main.html#firstName=Flying;lastName=Li;age=30 进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值