Discussion Board

ask questions, discuss topics, solve problems

This is a public Discussion Area  publicRSS

Thread

    • interactiune cu o pagina html in adobe air
      Thread posted Oct 17 by vlad2009
      233 Views, 3 Comments
      Title:
      interactiune cu o pagina html in adobe air
      Content:

      Pe scurt, situatia este in felul urmator. Incarc un formular html, intr-o aplicatie air, folosind HTML controler, care nu va fi vizibil. Pagina este luata de pe un server si nu am posibilitatea sa umblu la ea.

      As vrea sa controlez cumva aceasta pagina, in sensul ca vreau sa pot completa campurile din formularul html, si sa trimit datele in server, folosind actionscript.

      Am citit cate ceva despre domWindow, dar nu gasesc o documentatie mai clara pe undeva.

      Ma intereseaza in special, cum identific elementele pe care le am in html, precum campuri de input si butoane, presupunand ca nu au un id setat la fiecare.

    Comments

    • Salut!

      Cred ca poti rezolva asta cu domWindow. Mai intai trebuie sa asculti evenimentul de DOM_INITIALIZE, dupa ce vine acesta poti lua din domWindow referinta la form prin document.forms.

      Apoi parcurgi array-ul elements al obiectului form si fiecare element are o proprietate type. Poti filtra astfel ceea ce te intereseaza.

      Cateva linkuri care te pot ajuta :

      http://www.kirupa.com/forum/showthread.php?p=2432744

      http://www.exforsys.com/tutorials/javascript/javascript-form-object.html

      PS Daca reusesti, poate postezi la sfarsit un scurt exemplu aici.

      Spor

    • Am gasit o documentatie foarte buna, intr-o carte, si postez ce e mai important, sub forma unui atasament. Sper sa fie util celor interesati.

      O cale scurta si rapida de a accesa elementele dintr-o pagina web, atunci cand acestea au un id, este urmatoarea:

      dupa ce pagina s-a incarcat (se verifica evenimentul COMPLETE), se procedeaza in felul urmator:

      var doc:Object = html.domWindow;

      doc.myBtn.click();//se invoka functia click() pentru buton, cu acelasi efect ca si cum s-ar da click cu mouse.

      doc.myInput.value = "Hello World!";

      Mai sus, "html" este referinta la containerul HTML, "myBtn" este id-ul unui buton din pagina, "myInput" este id-ul unui camp de input. In atasament sunt si alte exemple despre cum se poate face 'script bridging' intre flex si javascript

    • Postez si o bucata de cod, prof of concept, prin care completez campul de cautare de la google si se da click pe butonul de cautare, folosind actionscript

      <?xml version="1.0" encoding="utf-8"?>

      <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">

      <mx:Script>

          <![CDATA[

              private function init():void{

                  this.nativeWindow.maximize();

                  html.addEventListener(Event.COMPLETE, htmlComplete);

                  html.location = "http://www.google.ro";

              }

              private function htmlComplete(evt:Event):void

              {

               var o:Object = html.domWindow.document;

               o.getElementsByName('q')[0].value = "flex 4";

               //click buton cautare

               o.getElementsByName('btnG')[0].click();

               //remove event listener, pentru evitare loop

               html.removeEventListener(Event.COMPLETE,htmlComplete);

              

              }

          ]]>

          </mx:Script>

      <mx:HTML id="html" right="10" left="10" top="10" bottom="10" borderStyle="solid"/>

      </mx:WindowedApplication>