2013-10-12 149 views
2

我试图从HTML组件内打开url链接到系统浏览器。从外部浏览器中的HTML组件打开url打开

我正在使用此方法创建多个HTML组件子,并将它们全部添加到Vgroup中。

 public function addHtmlText(htmlValue:String):void { 

      var htmlData:HTML = new HTML(); 
      htmlData.percentWidth = 95;    
      htmlData.htmlText = htmlValue 
      htmlData.horizontalScrollPolicy="false" 
      htmlData.verticalScrollPolicy="false" 
      chatCanvas.addElement(htmlData); 
     } 

我这是怎么呈现两岸文本链接到一个真正的链接()

public function emoUrl(emoValue:String):String { 


      var urlRegex:RegExp = /(((http|ftp|https):\/\/){1}([a-zA-Z0-9_-]+)(\.[a-zA-Z0-9_-]+)+([\S,:\/\.\?=a-zA-Z0-9_-]+))/igs 
      var emoValue1:Array = emoValue.match(urlRegex); 

      if (urlRegex.test(emoValue)) { 

       emoValue = emoValue.split(emoValue.match(urlRegex)).join('<a href="'+emoValue1.toString()+'">'+emoValue1.toString()+'</a>') 

      } 
       return emoValue; 
    } 

的问题是,由于这些都是个别HTML组成元素,用户可以点击任何一个他们在系统浏览器中打开。

目前,链接将打开,但在html组件内。我需要它是外在的。

我在互联网上发现了这个可能会有所帮助,但我不知道如何根据我的需要实施它。

htmlData.htmlLoader.navigateInSystemBrowser = true 

谢谢!

回答

2

创建一个URLRequest的网页,并与NavigateToURL的打开它:

var urlRequest:URLRequest = new URLRequest("http://www.adobe.com/"); 
navigateToURL(urlRequest); 
Example loading a page upon click of a button with Flex MXML: 

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark"> 

    <fx:Script> 
     <![CDATA[ 
      import flash.net.navigateToURL; 

      protected function clickHandler(event:MouseEvent):void 
      { 
       navigateToURL(new URLRequest("http://www.adobe.com"), "_blank"); 
      } 
     ]]> 
    </fx:Script> 

    <s:Button label="Open page" 
       click="clickHandler(event)" /> 

</s:Application> 
navigateToURL(): 

打开或在包含Flash Player容器(通常是浏览器)应用程序替换一个窗口。在Adobe AIR中,该功能会在默认系统Web浏览器中打开一个URL。

参数

请求:URLRequest - 一个URLRequest对象,指定URL导航到。对于在Adobe AIR中运行的内容,在使用navigateToURL()函数时,运行时将使用POST方法(其方法属性设置为URLRequestMethod.POST的URL方法)的URLRequest视为使用GET方法。

window:String(default = null) - 在其中显示由请求参数指示的文档的浏览器窗口或HTML框架。您可以输入特定窗口的名称或使用以下某个值:

“_self”指定当前窗口中的当前帧。 “_blank”指定一个新窗口。 “_parent”指定当前帧的父级。 “_top”指定当前窗口中的顶级框架。 urlRequest():

创建一个URLRequest对象。如果System.useCodePage为true,则使用系统代码页而不是Unicode对请求进行编码。如果System.useCodePage为false,则使用Unicode编码请求,而不是系统代码页。

参数

url:String (default = null) — The URL to be requested. You can set the URL later by using the url property. 
+0

所以,这似乎是在ActionScript这样做是正确的做法;但是如果我理解了原始问题,他希望在系统浏览器中单击HTML组件内的链接时启动URL,而HTML组件中的HTML/JS不在ACtionScript中。 – JeffryHouser

+0

正确,并且在创建html组件时提供一次url链接,将其视为聊天应用程序,并且每次添加新链接时,它都将在其自己的组件中呈现。我需要创建一个函数来验证并在外部浏览器中打开特定组件的特定URL,因为它们当前在空中应用程序中打开,我不想要这样做。 –

+0

而且,AIR是独立应用程序,它不会在浏览器上运行。我只需要知道如何验证链接已被点击 –

相关问题