从Flex 3获取当前页面的URL?

时间:2009-09-15 04:39:53

标签: flex actionscript-3 flex3

如何从Flex中确定当前页面的URL?

7 个答案:

答案 0 :(得分:24)

我们在这里说清楚。

1。如果您需要加载的 SWF 文件的网址,请使用其中一种。

在您的申请中:

this.url;

从其他任何地方:

Application.application.url; // Flex 3
FlexGlobals.topLevelApplication.url; // Flex 4

如果要在另一个SWF中加载SWF,请记住上面的代码会给出不同的值。 this.url将返回您的SWF的网址,其中Application.application.url将提供父/根SWF的网址。

2. 如果您想知道浏览器地址栏中的网址,请使用其中一个。

BrowserManager方法(确保你的包装器html中包含History.js,以便工作):

var browser:IBrowserManager = BrowserManager.getInstance(); 
browser.init();
var browserUrl:String = browser.url; // full url in the browser
var baseUrl:String = browser.base; // the portion of the url before the "#"
var fragment:String = browser.fragment; // the portion of the url after the "#"

JavaScript方法:

var browserUrl:String = ExternalInterface.call("eval", "window.location.href");

如果要解析参数的url,请不要忘记这个有用的函数:

// parses a query string like "key=value&another=true" into an object
var params:Object = URLUtil.stringToObject(browserURL, "&");

答案 1 :(得分:8)

来自申请表:

var myUrl:String = Application.application.url;

答案 2 :(得分:4)

我搜索并提出了this url。我老实说从未使用过Flex,但看起来该文档的重要部分是:

private function showURLDetails(e:BrowserChangeEvent):void {
  var url:String = browserManager.url;
  baseURL = browserManager.base;
  fragment = browserManager.fragment;                
  previousURL = e.lastURL;                

  fullURL = mx.utils.URLUtil.getFullURL(url, url);
  port = mx.utils.URLUtil.getPort(url);
  protocol = mx.utils.URLUtil.getProtocol(url);
  serverName = mx.utils.URLUtil.getServerName(url);
  isSecure = mx.utils.URLUtil.isHttpsURL(url);        
}

无论哪种方式,祝你好运! :)

答案 3 :(得分:2)

使用ExternalInterface(flash.external.ExternalInterface),您可以在浏览器中执行Javascript。 知道了这一点,你可以打电话给

ExternalInterface.call("window.location.href.toString");

获取当前网址(请注意,这将是网页网址,而不是.swf网址。)

HTH

柯恩

答案 4 :(得分:0)

从应用程序中,使用:this.loaderInfo.loaderURL

将它拆开并使用它的一部分:

var splitURL:Array = this.loaderInfo.loaderURL.split('/');
var baseURL:String = "http://"+splitURL[2];

答案 5 :(得分:0)

我尝试了e:BrowserChangeEvent版本,在我的课程中,它没有或者不适合这个事件发挥作用,所以总之它没有用!

使用Application.application.loaderInfo.loaderURL是我首选的解决方案。

答案 6 :(得分:0)

ExternalInterface.call("window.location.href.toString");