Boris Stumpf: Opera, Javascript und Bilder dynamisch in neue Fenster laden

Beitrag lesen

Hallo allerseits,

hatte ein Problem zu Opera (5.02) mit neuem Fenster, das per Javascript (window.open) geöffnet und in das dynamisch ein Hintergrundbild geladen werden soll. Bin im Forumsarchiv Juni 2001 fündig geworden. Dort haben sich einige Tüftler schon mit eben diesem Problem beschäftigt. Nach viel Herumprobieren mit den dort gefundenen Ideen habe ich mein Skript jetzt zum Laufen gebracht. Dafür Dank an alle, die dazu beigetragen haben (urspr. 'Opera: Bilder in neu geöffneten Fenstern, Stefan Bion, 25.06.2001).

Möchte also gerne nochmal, nach meinen aktuellen Erkenntnissen, zusammenfassen:

1. Opera benötigt im 'window.open' tatsächlich eine Angabe zu einer zu ladenden HTML-Datei:
[pwindow = window.open("http://absoluter Pfad/leer.html","","");]

In diese Datei kann man dann per 'document. write(ln)' reinschreiben.
Wichtig ist der absolute Pfad zu dieser Datei!

2. Die Bilddatei, die man z.B. als Hintergrundbild (dynamisch) in diese Datei laden will, muss ebenfalls absolut referenziert werden.

3. Es scheint mir tatsächlich so zu sein, dass Opera das Bild dann aber erst anzeigen kann, wenn es im Cache ist. Könnte sich also anbieten, das gewünschte Bild in der aufrufenden HTML-Datei vorzuladen.

Da die anderen Browser damit gar keine Probleme haben und das Pfad-Gehubere nicht brauchen, frage ich in meinem Skript vorher den Browser ab und backe nur für Opera dieses Extrawürstchen. Um dabei die mögliche Maskierung von Opera als 'anderer' Browser zu umgehen, muss man die Eigenschaft 'navigator.userAgent' verwenden. Im zurückgelieferten String befindet sich bei Opera immer irgendwo die Teil-Zeichenkette 'Opera'. Über eine 'string.indexOf'-Auswertung ermittelt man, ob dieser Teilstring (Vorsicht: großes 'O'!) vorkommt. Wenn das Ergebnis '-1' ist, ist es NICHT Opera.

[ if(string.indexOf("Opera",0) == -1){...alle anderen Browser}else{...Opera} ]

Bei meinem Skript scheint also jetzt alles halbwegs zu funktionieren (uff...), wer will, kann sich's ja mal ansehen unter:
http://www.xpw18.de/grafik/backgrounds.html

Merkwürdig bleibt dabei nur noch:
Beim ersten Klick auf eine der Hintergrundkacheln bleibt das Fensterchen leer, wenn man nochmal eine Kachel anklickt, gehts dann. Vielleicht der Cache-Effekt?

Was mich daran zum Grunzen ärgert, ist, dass es sich bei all dem eigentlich um olles Standard-Javascript handelt, und Opera ist mittlerweile bei 5.x angekommen. Zur Strafe müsste man dafür eigentlich eine Rücksetzung auf Versionsnummer 0.9 verordnen und für das völlig überflüssige Gebastel ein dicke Rechnung an Operasoft schicken....(und gleich noch weitere Rechnungen an die anderen auch MS, NS usw. für das Gefummel, was einem deren fehlerhafte Softwarebrocken aufzwingen).

Nochmals Dank an alle aus der Juni-2001-Diskussion.
Grusz,
/boris