如何在URLRequest Flex 4 / Air中替换HTML标记

时间:2011-03-02 19:18:04

标签: javascript html flex air

我在我的应用程序中嵌入了一个网站,Adobe Air无法识别源代码中的breakline HTML标记(Firefox和Chrome会自动更正错误)。我已附上以下源代码。有没有办法用正确的语法替换断裂线(没有正斜杠)。我不控制网站,我只是将它加载到我的应用程序中,所以我不能只在源头上更改它。我正在使用mx:html对象和htmlLoader来加载网址。

网站来源:

<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 个答案:

答案 0 :(得分:1)

我过去处理这个问题的方法是使用URLLoader首先检索内容,然后修改它,然后通过调用myHtmlComponent.htmlLoader.loadString(myModifiedContent)将内容设置为HTML组件

希望有所帮助。

编辑:阅读下面的评论后,如果使用相对URL而不是完整的URL引用引用的脚本,则可能无法加载引用的脚本。我过去通过预先添加基本标记来修复此问题,以便相对URL可以正确解析。在检索内容之后,在调用myHtmlComponent.htmlLoader.loadString之前,请像这样预先添加:

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