2011-03-02 52 views
0

我正在將一個網站嵌入到我的應用程序中,並且Adobe Air無法識別源代碼中的斷裂線HTML標記(Firefox和Chrome會自動更正錯誤)。我附上了下面的源代碼。有沒有辦法用正確的語法來替換breakline(沒有正斜槓)。我不控制網站,我只是將它加載到我的應用程序中,所以我不能只從源頭上更改它。我正在使用mx:html對象和htmlLoader來加載url。如何替換URLRequest中的HTML標記Flex 4/Air

網站來源:

<ul> 
    <li><a href="Rpt_Selection_2.asp?Report=StatusReport/StatusReport.asp">Status Report</a></li> 
    <li><a href="Rpt_Selection_2.asp?Report=StatusReport/AlarmsAlerts.asp">Alarm History</a></li> 
</ul> 

<br/> 

<table class="Header" cellspacing="0" cellpadding="0" border="0"> 
    <tr> 
     <td class="HeaderLeft"><img src="Images/Spacer.gif" border="0"></td> 
     <th>List of&nbsp;Alarms for Multiple Groups&nbsp;</th> 
     <td class="HeaderRight"><img src="Images/Spacer.gif" border="0"></td> 
    </tr> 
</table> 

MXML組件:

<mx:HTML id="htmlControl" width="100%" height="100%"/> 

腳本加載網址:

htmlControl.htmlLoader.load(new URLRequest("http://mysite.com/somepage.asp")); 

謝謝你。

回答

1

我已經在過去處理這個問題的方法是使用一個的URLLoader首先檢索的內容,然後修改它,然後通過調用myHtmlComponent.htmlLoader.loadString(myModifiedContent)

設置內容爲一個HTML組件

希望有所幫助。

編輯:在閱讀下面的註釋之後,如果使用相對URL而不是完整URL引用它們,則可能在加載引用腳本時遇到了問題。我已經通過添加一個基本標記來解決這個問題,因此相對URL可以正確解析。檢索完內容之後,在調用myHtmlComponent.htmlLoader.loadString之前,需要像這樣:

myModifiedContent = "<base href='http://mydomain.com/'/>" + myModifiedContent; 
+0

感謝您的回覆Wade。我能夠得到這個顯示網站的文本和html(例如 - 表單)元素,但是javascript或者某些東西不起作用。該網站是SQL服務器的用戶界面,這可能是問題的一部分嗎?這是我寫的: 'private var htmlControl:HTMLLoader = new HTMLLoader();' 'private var urlControl:URLLoader = new URLLoader();' 'urlControl.load(new URLRequest(「http:// site ';} 'var strText:String = urlControl.data;' 'strText = removeHTMLTags(strText); //這確實刪除了標籤# 'htmlControl.htmlLoader.loadString(strText);' – Carter 2011-03-04 18:52:11

+0

嗨卡特,我更新了我的答案,希望對您的問題有所幫助。祝你好運。 – 2011-03-04 19:15:28