Widget-code
8 augustus 2005 - 22:48   
geplaatst door: JanV
Kan iemand mij helpen met het volgende probleem:

Ik heb een widget gemaakt waarvan de javascript-code eindigt met het openen van een webpagina in Safari en waarop vervolgens een formulier moet worden ingevuld.
Het lukt me echter niet om (dmv een referentie naar het Safari-document) het formulier in te vullen.
Ik denk dat "document" binnen de context van een widget verwijst naar de body van de widget. Ik denk dat hetzelfde probleem zou onstaan idien men vanop een webpagina een webformulier van een andere pagina zou willen invullen.
Iemand een idee ?!


 :wacko:

Widget-code
9 augustus 2005 - 08:41    reactie #1
geplaatst door: mvdg
Misschien denk ik te simpel, maar op internet open je een nieuw document met de code

var venster = window.open ( url, naam, opties );

waarbij 'url' dus het adres is van de pagina die je wilt openen, 'naam' is de naam die je aan het nieuwe venster/pagina geeft, en bij de opties kun je de hoogte, werkbalken etc. instellen.

Als je nu doet


var venster = window.open ( "http://server.nl/mijnvervolgpagina.html" , "formulier", .... );

dan kun je vanuit je Widget je formulier invullen en verzenden op deze manier:

venster.document.mijnformulier.element.value = "een bepaalde waarde";

Hierbij is dus 'venster' een referentie naar je nieuwe venster (dit is vastgelegd bij de window.open methode). 'mijnformulier' is de naam die je in je pagina aan de FORM tag meegeeft. En 'element' is de naam van een element waarvan je de waarde wilt aanpassen. Hieronder is dus 'mijnformulier' gelijk aan 'test' en de naam van het element is 'adres':


...
<form name="test" action="verzend.php" method="post">
Geef je adres in:<br>
<imput name="adres" type="text">
...
</form>
...
Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl
Widget-code
9 augustus 2005 - 08:44    reactie #2
geplaatst door: mvdg
Ik bedenk nu, als je het formulier dat je aanroept toch meteen wilt gaan verzenden, kun je misschien beter meteen de hele handel in je widget zetten. Dus gewoon de FORM en INPUT tags overnemen in je widget en dan meteen verzenden, alsof de gegevens vanuit het andere formulier verzonden zouden zijn. Dat zou wel sneller en makkelijker zijn denk ik.
Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl
Widget-code
9 augustus 2005 - 21:39    reactie #3
geplaatst door: JanV
Allereerst bedankt voor je snelle reactie.
De regel code die je voorstelde blijkt echter niet te werken vanuit een widget. Binnen de dashboardomgeving wordt een webpagina dan ook geopend met een eigen syntax:

widget.openURL(loginForm);

die lijkt me echter geen reference naar de geopende pagina terug te geven.

Het invullen van het formulier rechtstreeks vanuit de widget zou wellicht wel werken, maar het is net het einddoel om na de submit() een open browser venster te behouden.
De form dient nl. om in te loggen op een beveiligde website, dat vraagt een iets andere benadering dan bijvoorbeeld het aanvullen van een blog waarvoor dat wel een ideale methode zou zijn.