首页 > FLEX中如何获取当前页面的URL的问题

FLEX中如何获取当前页面的URL的问题

Browser.as脚本:

package test{
    import flash.external.ExternalInterface;
    public class Browser{
        //获取当前url路径
        public static function getUrl():String{
            //var url:String = ExternalInterface.call("function getUrl(){return document.location.href;}");
            var url:String = ExternalInterface.call('window.location.href.toString');
            return url;
        }
    }
}

mxml脚本

import test.Browser;
var abc:String = Browser.getUrl();
log(abc);//log是我自己写的输出函数

用ant编译后无论如何都无法获取到swf所在页面的url,ant编译的过程中也没有报错,只是log()没有输出任何东西(我确定log函数没错,直接log('123')是没有问题的)。因为项目原因,我的FLEX SDK是4.1版本的,请问问题出在那里?


最近在做项目的时候遇到类似的问题,也许有帮助。
1. 所有浏览器都不能工作还是只有个别,我的问题是因为chrome的安全机制导致无法工作。
2. flash builder 自带的浏览器能不能工作。
3. 安装flash player version, trace错误代码会有比较有用。
4. 在html中的swf config部分,有个allowScriptAccess,值设为always试试。


用的debug版本的flash player吗? 有没有报什么错误? 一般来说调用ExternalInterface.call之前最好先判断一下ExternalInterface.available是否为ture. 另外如果页面和swf在不同的域可能会引起安全错误.

如果都不是,那就试试其他的函数 如

ExternalInterface.call('console.log',"123");
【热门文章】
【热门文章】