BrowserManager的简单应用

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 进行测试。

上一篇上一篇: Flex要出中文版
下一篇下一篇: BrowserManager的高级应用
来自文章来自: 本站原创
引用引用通告: 查看所有引用 | 我要引用此文章
标签Tags: Manager Javasctipt Deeplinking
相关相关日志:
评论: 2 | 引用: 0 | 查看次数: -
引用carthin[2009-01-03 01:37 PM | 无网站 | 无Mail | 121.32.196.165 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
引用duzengqiang[2008-09-01 00:31 AM | 无网站 | 无Mail | 221.217.175.96 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭