·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]flash通过ExternalInterface.call方法来获取当前URL地址

时间:2012-02-11 14:15blueidea.com
不用js,只需flash就能搞定了,主要是用了ExternalInterface.call方法,其本质还是通过flash去调用js函数

  不用js,只需flash就能搞定了,主要是用了ExternalInterface.call方法,其本质还是通过flash去调用js函数

  1. import flash.external.*;  
  2. var urlPath;  
  3. var param_info;  
  4. function geturlhttp() {  
  5. urlPath = ExternalInterface.call('eval', 'window.location.href');  
  6. //如果使用urlPath = ExternalInterface.call("window.location.href.toString");  
  7. //的话IE不识别,不过我测试了一下,也没有问题  
  8. param_info = urlPath.split("?")[1];  
  9. }  
  10. geturlhttp();  
  11. urlText.text = urlPath;   
  12. if(param_info == undefined){  
  13. param.text = "no param";  
  14. }else{  
  15. param.text = param_info;  
  16. }  

  loaderInfo.url 获取的是swf文件地址,当swf在一个域下,html在另外一个域下引用用一下方法获取URL地址
  ExternalInterface.call("function getURL(){return window.location.href;}")

  通常我们理解ExternalInterface.call方法是调用js里面的函数,但他还有一个重要功能可以动态的给js添加一个方法并执行,不知道我这么理解是否正确。上例中通过call方法给js添加了一个getURL的函数,并执行它,这样call的返回值就是当前页面的URL地址。

  同理

  还可以获得浏览器类型
  ExternalInterface.call("function getBrowser(){return navigator.userAgent;}");

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器