2013-10-12 147 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是獨立應用程序,它不會在瀏覽器上運行。我只需要知道如何驗證鏈接已被點擊 –

相關問題