使用 Flex/AS3 填充 Web 表单



我需要在基于 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 目标页面的格式还有很多不足之处!

感谢您的输入,再次抱歉没有回复的不良形式。

乌尔曼

最新更新