使用Flex / AS3填充Web表单

时间:2013-10-26 22:28:52

标签: actionscript-3 flex air

我需要在基于Flex的AIR桌面应用程序中加载页面,然后填充页面上的某些字段。我试图使用HTML控件来加载页面,但我无法弄清楚如何与DOM元素进行交互。还有另一种方法吗?

任何指针或帮助都会非常感激!

谢谢,

RW

2 个答案:

答案 0 :(得分:0)

我已成功将Flex / Air应用程序中的参数作为url变量传递然后在HTML页面中(在as3中加载stagewebview)使用服务器端技术(php,asp等)检索这些单独的数据元素然后使用javascript获取这些值并将其设置为页面上特定字段的值。

我已经两种方式使用它,例如html页面可以调用由flex / air应用程序监视的url调用,并且在as3中我可以监视可以触发的特定url变量(即,当检测到url更改时)我希望在as3中发生的任何类型的动作,而在另一个方向上,flex / air应用程序也可以向HTML页面发送数据和命令/触发器。

AS3 StageWebViewBridge看起来非常强大,但我还没有推动自己获得它的所有好处,我只是使用标准的StageWebView来满足我的需求。祝你的项目好运,如果你有任何其他问题,请告诉我。

答案 1 :(得分:-1)

感谢您的回答 - 对于迟到的回复感到抱歉,我没有通过电子邮件收到通知,我确信这是我的不好....

所以,我已经开始工作了。具体来说,我打开一个页面,填写表单中的字段,提交表单,然后收集结果。这需要充实,但基本概念有效:

<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目标页面的格式化还有很多不足之处!

感谢您的回复,对于不响应的错误表单再次感到抱歉。

RW