用FLEX如何取浏览器地址栏中的域名信息?

来源:互联网 发布:逆战闪狙数据教学视频 编辑:程序博客网 时间:2024/05/21 09:16

用FLEX如何取浏览器地址栏中的域名信息?我查找到两种方法:

第一种方法是用ExternalInterface.call('window.location.href.toString'),它的值就是地址栏中的域名

有以下几点需要注意:

1.当Flash和加载它的网页不同域时,需要在网页在 PARAM 或 EMBED 标签中进行设置AllowScriptAccess 为“always”

关于AllowScriptAccess ,参见官方文档

2.仅用embed标签嵌入网页,在IE浏览器中取到的值为空,FF里正常。所以必须要object标签,及id值,关于为什么会这样,请看另外一篇网摘

我测试成功IE,FF均可取到域名的html代码如下:

 

view plaincopy to clipboardprint?
  1. <object id="flashpaper" width="950" height="500" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">    
  2.                         <param name="movie" value="http://www.text.com/t.swf"/>    
  3.                         <param name="allowfullscreen" value="true"/>  
  4.                         <param name="allowscriptaccess" value="always"/>  
  5.                         <embed width="950" height="500" allowscriptaccess="always" allowfullscreen="true" src="http://www.test.com/t.swf" type="application/x-shockwave-flash"/>    
  6. </object>    

 

第二种方法是用BrowserManager解析URL 示例:mxml

 

view plaincopy to clipboardprint?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="getUrl()" layout="absolute" historyManagementEnabled="false" >  
  3.         <mx:Script>  
  4.                 <!--[CDATA[  
  5.                         import mx.controls.Alert;  
  6.                         import mx.managers.BrowserManager;  
  7.                         import mx.managers.IBrowserManager;  
  8.                         private var bm:IBrowserManager;  
  9.                           
  10.                         private function getUrl():void{  
  11.                                 bm=BrowserManager.getInstance();  
  12.                                 bm.init();   
  13.                                 var str:String = bm.url;  
  14.                                 Alert.show(str);  
  15.                         }  
  16.                 ]]-->  
  17.         </mx:Script>  
  18. </mx:Application>  

 

这种方法在Flex 3 cookbook中有一章的详细描述,经过我的测试,这种方法在flex自动生成的html中有效,在使用简易的加载flash方法的网页中无效(比如只用embed),我推测也是没有object和id的原因

转自:http://blog.csdn.net/nitoto/archive/2009/12/17/5025081.aspx

原创粉丝点击