NS-Problem mit window.document.images[0].src
Holgi
- javascript
Hallo Kollegen,
ich möchte aus einer Html-Datei (hier: Basis.html) heraus ein Popup-Fenster öffnen. Dafür starte ich in einer Javascript Datei die Function Grafikfenster und übergebe mit Variablen die URL (hier: Bild) und die Maße (hier: Hoehe,Breite) der Grafik, die in dem Fenster erscheinen soll.
Im Script (hier: ../resources/script.js) wird dann die Datei popup.html mit einer Dummy-Grafik aufgerufen. Diese Grafik dient nur als Platzhalter und wird dann mit "popup.document.images[0].src = Bild;" durch die eigentliche Grafik ersetzt.
Mein Problem ist, daß das ganze im IE wunderbar funktioniert. NS dagegen ersetzt mir die Dummy-Grafik nicht durch die, deren URI relativ in der Variablen Bild hinterlegt ist.
Es scheint sich also entweder um ein NS-Problem zu handeln oder um einen Fehler von mir, der aber vom IE abgefangen wird.
Wer kann und will mir weiterhelfen?
Danke im voraus
Holgi
******* html-Datei Basis.html (Auszug) *******
<html>
<head>
<script src="../resources/script.js" type="text/javascript"></script>
</head>
<body>
<a href="javascript:Grafikfenster('l_100km.gif',352,679)">
<img src="l_100km_klein.gif" height="106" border="0" alt="">
</a><br>Diagramm: Verbrauch l/100km
</body>
</html>
*************************************************
******** Datei: ../resources/script.js *********************
function Grafikfenster(Bild,Hoehe,Breite) {
Hoehe=Hoehe+80;
Breite=Breite+20;
popup = window.open("popup.html", "Grafik", "width=" + Breite + ",height=" + Hoehe +",left=100,top=100");
popup.document.images[0].src = Bild;
}
**************************************************
******* html-Datei popup.html (Auszug) ********
<html>
<head>
<script type="text/javascript"></script>
</head>
<body>
<div>
<img src="spacer.gif" border="0" alt="spacer">
<br>
<input type="Submit" name="Button" value="Close" Onclick="javascript:window.close()">
</div>
</body>
</html>
*************************************************
Hi,
Mein Problem ist, daß das ganze im IE wunderbar funktioniert. NS dagegen ersetzt mir die Dummy-Grafik nicht durch die, deren URI relativ in der Variablen Bild hinterlegt ist.
sondern macht was?
popup = window.open("popup.html", "Grafik", "width=" + Breite + ",height=" + Hoehe +",left=100,top=100");
popup.document.images[0].src = Bild;
Hast Du an Stelle der zweiten Zeile mal alert(popup); alert(popup.document); alert(popup.document.images); usw. ausgeben lassen?
Cheatah
Hi,
Hi Cheatah
Mein Problem ist, daß das ganze im IE wunderbar funktioniert. NS dagegen ersetzt mir die Dummy-Grafik nicht durch die, deren URI relativ in der Variablen Bild hinterlegt ist.
sondern macht was?
macht nix. Der Platzhalter bleibt stehen und wird nicht ersetzt. Keine Fehlermeldungen
popup = window.open("popup.html", "Grafik", "width=" + Breite + ",height=" + Hoehe +",left=100,top=100");
popup.document.images[0].src = Bild;
Hast Du an Stelle der zweiten Zeile mal alert(popup); alert(popup.document); alert(popup.document.images); usw. ausgeben lassen?
Nein, werde ich gleich mal machen. Du meinst um zu prüfen, ob die Varaiblen richtig übergeben wurden?
Cheatah
Hi,
Mein Problem ist, daß das ganze im IE wunderbar funktioniert. NS dagegen ersetzt mir die Dummy-Grafik nicht durch die, deren URI relativ in der Variablen Bild hinterlegt ist.
sondern macht was?
wie gesagt macht nix (Dummy wird nicth ersetzt)
popup = window.open("popup.html", "Grafik", "width=" + Breite + ",height=" + Hoehe +",left=100,top=100");
popup.document.images[0].src = Bild;
Hast Du an Stelle der zweiten Zeile mal alert(popup); alert(popup.document); alert(popup.document.images); usw. ausgeben lassen?
Jetzt ja: Er deklariert alles richtig als [object] bzw. gibt die Variableninhalte wieder, die ich auch haben möchte. Zumindest im IE.
IN NS sieht es anders aus: Obwohl ich das alert-Fenster hinten angestellt habe, zeigt er mir die html Datei erst nach dem alert an. Wenn ich den src.-Wechsel wieder dazunehme, ignoriert NS sowohl den src-Wechsel als auch den alert. Sagti Dir das was? Ich bin leich überfordert .-(
Holgi
Cheatah
Hi,
sondern macht was?
wie gesagt macht nix (Dummy wird nicth ersetzt)
ich glaube nicht, dass es keine Fehlermeldung gibt.
Hast Du an Stelle der zweiten Zeile mal alert(popup); alert(popup.document); alert(popup.document.images); usw. ausgeben lassen?
Jetzt ja: Er deklariert alles richtig als [object] bzw. gibt die Variableninhalte wieder, die ich auch haben möchte. Zumindest im IE.
Der IE ist *niemals* als Referenz für korrektes Verhalten zu gebrauchen. Wenn Du wissen willst, ob ein Code (egal welcher Art) stimmt, ist der IE der letzte, den Du zu Rate ziehen solltest.
IN NS sieht es anders aus: Obwohl ich das alert-Fenster hinten angestellt habe, zeigt er mir die html Datei erst nach dem alert an.
Genau darauf wollte ich hinaus. JavaScript wartet nicht, bis irgendwas fertig ist, von dem unter Umständen jemand will, dass es erst fertig sein soll. Du öffnest ein Fenster, welches Zeit benötigt, um gefüllt zu werden; der nachfolgende Befehl wird jedoch _sofort_ ausgeführt.
Wenn ich den src.-Wechsel wieder dazunehme, ignoriert NS sowohl den src-Wechsel als auch den alert. Sagti Dir das was?
Nach einem Fehler (schau übrigens mal in die Statusleiste) wird eine Scriptausführung abgebrochen.
Cheatah
Hi Cheatah,
danke für Deine Tipps. Ich glaube jetzt habe ich erst mal was zu tun. Wenn ich weiter bin, melde ich Vollzug. Bis dahin erst mal herzlichen Dank
Holgi
Hi,
sondern macht was?
wie gesagt macht nix (Dummy wird nicth ersetzt)
ich glaube nicht, dass es keine Fehlermeldung gibt.
Hast Du an Stelle der zweiten Zeile mal alert(popup); alert(popup.document); alert(popup.document.images); usw. ausgeben lassen?
Jetzt ja: Er deklariert alles richtig als [object] bzw. gibt die Variableninhalte wieder, die ich auch haben möchte. Zumindest im IE.
Der IE ist *niemals* als Referenz für korrektes Verhalten zu gebrauchen. Wenn Du wissen willst, ob ein Code (egal welcher Art) stimmt, ist der IE der letzte, den Du zu Rate ziehen solltest.
IN NS sieht es anders aus: Obwohl ich das alert-Fenster hinten angestellt habe, zeigt er mir die html Datei erst nach dem alert an.
Genau darauf wollte ich hinaus. JavaScript wartet nicht, bis irgendwas fertig ist, von dem unter Umständen jemand will, dass es erst fertig sein soll. Du öffnest ein Fenster, welches Zeit benötigt, um gefüllt zu werden; der nachfolgende Befehl wird jedoch _sofort_ ausgeführt.
Wenn ich den src.-Wechsel wieder dazunehme, ignoriert NS sowohl den src-Wechsel als auch den alert. Sagti Dir das was?
Nach einem Fehler (schau übrigens mal in die Statusleiste) wird eine Scriptausführung abgebrochen.
Cheatah