【问题标题】:Get URL of current page from Flex 3?从 Flex 3 获取当前页面的 URL?
【发布时间】:2010-11-28 08:23:47
【问题描述】:

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

【问题讨论】:

    标签: apache-flex actionscript-3 flex3


    【解决方案1】:

    我搜索并想出了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);        
    }
    

    无论如何,祝你好运! :)

    【讨论】:

      【解决方案2】:

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

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

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

      科恩

      【讨论】:

      • 不是正确答案,因为在大多数情况下,您不允许执行 JavaScript(例如:Kongregate 托管闪存。)
      【解决方案3】:

      来自应用程序:

      var myUrl:String = Application.application.url;
      

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

        【解决方案5】:

        我尝试了 e:BrowserChangeEvent 版本,在我的课堂上它没有或不是该事件起作用的适当时机,所以简而言之它不起作用!

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

        【讨论】:

          【解决方案6】:

          让我们在这里说清楚。

          1.如果您想要加载的 SWF 文件的 URL,请使用其中之一。

          在您的应用程序中:

          this.url;
          

          从其他任何地方:

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

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

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

          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, "&");
          

          【讨论】:

            【解决方案7】:
            ExternalInterface.call("window.location.href.toString");
            

            【讨论】:

              猜你喜欢
              • 2011-06-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-15
              • 2014-05-26
              • 2013-03-01
              • 2021-07-23
              • 2016-09-28
              相关资源
              最近更新 更多