externe Elemente ansprechen

Sooooo nun reicht es ... sitz jetzt schon ne halbe Ewigkeit rum aber so richtig Fortschritte erziel ich keine mit meiner Arbeit.

Es geht um folgendes (eigentlich recht simpel denke ich). Wollte über eine Schaltfläche (oder Link) auf einer Seite, eine andere Seite aufrufen und dort die Formularfelder mit Werten füllen. So strickte ich mir, unbedarft wie ich bin folgende Funktion zurecht :
Code:
	function loading(){
		fenster = window.open('http://webseite.de','neues Fenster'); 
		fenster.focus(); 
		fenster.document.getElementById('Feldname1').value='foo';
		fenster.document.getElementById(' Feldname2').value='bar'; 	
	}
Im 1. Schritt wird also en Fenster geöffnet und dieses der Variable „fenster“ zugewiesen.

Im 2. Schritt wird „fenster“ fokussiert

Schritt 3 + 4 wird (bzw. soll) den beiden Elementen Feldname1 sowie Feldname2 jeweils der Wert „foo“ und „bar“ zugewiesen werden.

Aufegrufen wird das ganze über eine Schaltfläche , in etwa so :

HTML:
<input type="submit" title=“weiterleitung“ accesskey=’t’ name="Abschicken" value="Abschicken" onClick="loading();">

Bis Schritt 2 geht das ganze auch. Schritt 3+4 machen Problemchens. Außer ich klicke erneut auf die Schaltfläche. Dann geht der Fokus erneut auf die Seite, ich sehe dann die übergebenen Werte in den Formularfeldern, aber kurz darauf sind sie wieder weg.

Sooo und nu bin ich mit meinem Latein etwas am ende. Hat da jemand von Euch einen Tipp wie das ganze auch beim erstenmal öffnen funktionieren kann ?
 
Problem ist, dass das Fenster geöffnet wird und dann gleich die getElementById-Methode aufgerufen wird. Zum Zeitpunkt des Aufrufs ist aber das Fenster noch nicht fertig geladen und es existiert somit auch noch kein Element, dass man über getElementById() ansprechen könnte.

Versuch mal:
Javascript:
fenster = window.open('http://webseite.de','neues Fenster');
fenster.focus();
fenster.onload = function() {
    fenster.document.getElementById('Feldname1').value='foo';
    fenster.document.getElementById('Feldname2').value='bar'; 	
}

Außerdem ist da im zweiten getElementById ein Leerzeichen in die id geraten, was auch nicht erlaubt ist.

Merke: Die document.getElement{s]By{wasAuchImmer}()-Funktionen sind erst sinnvoll nach dem vollständigen Laden des ensprechenden Elements, man sollte sie also immer in einen Onload oder ähnlichs packen, was sicherstellt, dass das Element zum Aufrufzeitpunkt schon geladen ist.
 
Zuletzt bearbeitet:
*vor die Stirn hau* ... japp so etwas in der Art dachte ich mir auch schon. Allerdings wusste ich nicht so recht wie ich den Ladestatus der Seite abfragen soll. Aber danke für den Tipp. Ich werd das gleich mal ausprobieren =)
 

Neue Beiträge

Zurück