window.open Dokument füllen

Status
Nicht offen für weitere Antworten.

rapthor

Bekanntes Mitglied
Hallo,

ich habe foglenden Code:

Code:
    var fenster = window.open("","Auftrag","toolbar=0, location=0, directories=0, status=0, menubar=0, resizable=0, width=300, height=500");
    fenster.moveTo(100, 100);
    fenster.location.href = "scripts/html/packing.html";
    fenster.document.getElementById("testValue").value = "bla bla";

Es wird ein neues Fenster geöffnet und ich sehe auch die Rohfassung der packing.html-Datei. Aber die JavaScript Konsole meldet, dass das Element "testValue" keine Properties habe. Und das obwohl im Quelltext von packing.html folgendes steht:

Code:
....
<td  valign="bottom"  align="right"  style="background:#FFFFFF; font-size:10pt;" id="testValue"></td>
....

Ich will also per Script dynamisch Text in diese Tabellenzelle schreiben!

Warum funktioniert das nicht?
 

bummerland

Top Contributor
ein td hat kein value. wenn du text in die zelle schreiben willst, benutze
Code:
...
fenster.document.getElementById("testValue").innerHTML = "bla bla";
 

rapthor

Bekanntes Mitglied
Hab ich eben probiert! LEider bleibt der Fehler bestehen. Ich habe mir auch mal alert(fenster.document.getElementById("testValue")); ausgeben lassen und seltsamerweise ist es "null". Manchmal enthält es aber auch ein "HTMLCellElement".

Mir scheint es, als würde location.href noch nicht ausgeladen sein und somit exisitert meine id mit dem Namen "testValue" meistens noch garnicht an der Stelle, wo ich darauf zugreifen möchte.

Wie kann ich dieses Problem umgehen?

Auch ein fenster.document.close() hilft mir nciht weiter:

Code:
     var fenster = window.open("","Auftrag","toolbar=0, location=0, directories=0, status=0, menubar=0, resizable=0, width=300, height=500");
    fenster.moveTo(100, 100);
    fenster.location.href = "scripts/html/packing.html";
    fenster.document.close();
    alert("fensterdoc testValue: " + fenster.document.getElementById("testValue"));
    fenster.document.getElementById("testValue").innerHTML = "bla bla";
 

bummerland

Top Contributor
was soll denn das close? :?
und wieso machst du das href eigentlich nicht gleich oben mit rein?
Code:
var fenster = window.open("scripts/html/packing.html","Auftrag","toolbar=0, location=0, directories=0, status=0, menubar=0, resizable=0, width=300, height=500");
fenster.moveTo(100, 100);
fenster.document.getElementById("testValue").value = "bla bla";
 

rapthor

Bekanntes Mitglied
Laut SELFHTML dient docment.close() hierzu:

"... Mit dem Schließen des Dokumentes wird dem Browser signalisiert, dass der Aufbau der Seite abgeschlossen ist. Dies ist besonders beim dynamischen Schreiben von Kapitel Frames und zum Beschreiben von Kapitel Layern erforderlich."

Ich habe das href jetzt in den Methodenkopf aufgenommen, gut. Es funktioniert immernoch nicht :/

Code:
var fenster = window.open("scripts/html/packing.html","Auftrag","toolbar=0, location=0, directories=0, status=0, menubar=0, resizable=0, width=300, height=500");
fenster.moveTo(100, 100);
fenster.document.close();
fenster.document.getElementById("testValue").innerHTML = "bla bla";
 

bummerland

Top Contributor
kriegst du ne fehlermeldung? wenn ja, welche?
gibts dieses td mir der id auch wirklich in dem geöffneten fenster?
 

rapthor

Bekanntes Mitglied
Die Fehlermeldung lautet:

Code:
Fehler: fenster.document.getElementById("testValue") has no properties
Quelldatei: [url]http://localhost:8084/MyWebApp/scripts/tools.js[/url]
Zeile: 503

Wenn ich direkt in der aufgerufenen packing.html-Datei die gleiche zeile als Scriptblock einfüge, funktioniert es. Aber das darf so nicht sein. Ich muss die Daten von außerhalb einfügen können. Hier mal der Scriptblock, der in derselben Datei funktioniert:

...
<script type="text/javascript">
document.getElementById("testValue").innerHTML = "BLA";
</script>
...

Das heißt also, das Element "testValue" gibt es wirklich!
 

rapthor

Bekanntes Mitglied
Es liegt scheinbar daran, dass ich warten muss, bis das eue Dokument fertig geladen ist. Aber wie warte ich darauf?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben