我需要在基于 Flex 的 AIR 桌面应用程序中加载页面,然后填充页面上的某些字段。我正在尝试使用 HTML 控件来加载页面,但我不知道如何与 DOM 元素交互。还有另一种方法可以做到这一点吗?
任何指示或帮助将不胜感激!
谢谢,
读写
我需要在基于 Flex 的 AIR 桌面应用程序中加载页面,然后填充页面上的某些字段。我正在尝试使用 HTML 控件来加载页面,但我不知道如何与 DOM 元素交互。还有另一种方法可以做到这一点吗?
任何指示或帮助将不胜感激!
谢谢,
读写
我已经成功地将 Flex / Air 应用程序中的参数作为 url 变量传递,然后在 HTML 页面(在 as3 中使用 stagewebview 加载)使用服务器端技术(php、asp 等)检索这些单独的数据元素,然后使用 javascript获取这些值并将它们设置为页面上特定字段的值。
我已经使用了两种方式,例如 html 页面可以调用由 flex / air 应用程序监控的 url 调用,并且在 as3 中我可以观察可以触发任何类型的特定 url 变量(即,当检测到 url 更改时)我想在 as3 中发生的动作,而在另一个方向上,flex / air 应用程序也可以将数据和命令/触发器发送到 HTML 页面。
AS3 StageWebViewBridge 看起来非常强大,但我还没有强迫自己获得它的所有好处,我只是使用标准的 StageWebView 来满足我的需要。祝您的项目好运,如果您对此有任何其他问题,请告诉我。
感谢您的回答 - 很抱歉回复晚了,我没有通过电子邮件收到通知,我敢肯定这是我的错......
所以,我得到了这个工作。具体来说,我正在打开一个页面,在表单中填充字段,提交表单,然后收集结果。这需要大量充实,但基本概念有效:
<fx:Script>
<![CDATA[
private function init(e:Event):void
{
htmlCont.addEventListener(Event.COMPLETE, htmlComplete);
htmlCont.location="https://www.targetsite.com/pagewithform.html"
}
private function htmlComplete(event:Event):void
{
htmlCont.domWindow.document.getElementById("fieldToFill01").value = textInput.text;
htmlCont.removeEventListener(Event.COMPLETE, htmlComplete);
//After new page is loaded, trigger function to get data
htmlCont.addEventListener(Event.COMPLETE, getResult);
//Use htmlElement.htmlLoader to access DOM click() function.
htmlCont.htmlLoader.window.document.getElementById("ButtonID").click();
}
private function getResult(e:Event):void
{
//Getting all <p> tags for example
var returnedArray = htmlCont.htmlLoader.window.document.getElementsByTagName("p");
//Different grabs of the content of a <p> tag.
trace(returnedArray[0].innerHTML);
trace(returnedArray[0].innerText);
trace(returnedArray[0].textContent);
}
</fx:Script>
<!-- Inside your Application somewhere -->
<mx:HTML id="htmlCont" width="100%" height="100%" y="100"/>
同样,还有很多事情要做,我想我很快就会有一些正则表达式问题,因为我的 html 目标页面的格式还有很多不足之处!
感谢您的输入,再次抱歉没有回复的糟糕表格。
读写