# window.open Dokument füllen



## rapthor (3. Mai 2006)

Hallo,

ich habe foglenden 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:


```
....
<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 (3. Mai 2006)

ein td hat kein value. wenn du text in die zelle schreiben willst, benutze 

```
...
fenster.document.getElementById("testValue").innerHTML = "bla bla";
```


----------



## rapthor (3. Mai 2006)

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:


```
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 (3. Mai 2006)

was soll denn das close?  :? 
und wieso machst du das href eigentlich nicht gleich oben mit rein?

```
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 (3. Mai 2006)

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 :/


```
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 (3. Mai 2006)

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


----------



## rapthor (3. Mai 2006)

Die Fehlermeldung lautet:


```
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 (3. Mai 2006)

Es liegt scheinbar daran, dass ich warten muss, bis das eue Dokument fertig geladen ist. Aber wie warte ich darauf?


----------

