[AS3]flash通过ExternalInterface.call方法来获取当前URL地址
不用js,只需flash就能搞定了,主要是用了ExternalInterface.call方法,其本质还是通过flash去调用js函数
- import flash.external.*;
- var urlPath;
- var param_info;
- function geturlhttp() {
- urlPath = ExternalInterface.call('eval', 'window.location.href');
- //如果使用urlPath = ExternalInterface.call("window.location.href.toString");
- //的话IE不识别,不过我测试了一下,也没有问题
- param_info = urlPath.split("?")[1];
- }
- geturlhttp();
- urlText.text = urlPath;
- if(param_info == undefined){
- param.text = "no param";
- }else{
- param.text = param_info;
- }
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;}");
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例