代码之家  ›  专栏  ›  技术社区  ›  jsight TaherT

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

  •  6
  • jsight TaherT  · 技术社区  · 15 年前

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

    7 回复  |  直到 11 年前
        1
  •  2
  •   Koen Weyn    15 年前

    使用外部接口( flash.external.ExternalInterface )可以在浏览器中执行javascript。 知道这一点,你可以打电话给

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

    要获取当前的URL(请注意,这将是页面URL而不是.swf URL)。

    高温高压

    科恩

        2
  •  24
  •   Community CDub    13 年前

    让我们在这里说清楚。

    1。 如果需要加载的 SWF 文件,然后使用其中一个。

    在应用程序内部:

    this.url;
    

    从其他任何地方:

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

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

    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, "&");
    
        3
  •  8
  •   jsight TaherT    15 年前

    从应用程序:

    var myUrl:String = Application.application.url;
    
        4
  •  4
  •   Eric    15 年前

    我搜了出来 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);        
    }
    

    不管怎样,祝你好运!:)

        5
  •  0
  •   shi11i    15 年前

    从应用程序中,使用:this.loaderinfo.loaderurl

    要将其分解并使用其部分,请执行以下操作:

    var splitURL:Array = this.loaderInfo.loaderURL.split('/');
    var baseURL:String = "http://"+splitURL[2];
    
        6
  •  0
  •   landed    14 年前

    我尝试了e:browserchangeevent版本,但在我的班级里,它没有或不是这个事件工作的合适时机,所以简而言之,它没有工作!

    使用application.application.loaderinfo.loaderurl是我的首选解决方案。

        7
  •  0
  •   Anthony Atmaram    12 年前
    ExternalInterface.call("window.location.href.toString");