Der Martin: Übergabe in Funktion?

Beitrag lesen

Hallo,

Nebenbei, ich finde meinen Thread nicht mehr.

wenn du gesagt hättest, worum es ging, dann hätte ihn dir bestimmt schon jemand gezeigt. ;-)

<a href="javascript:funOpenPictureShow('pic_03.jpg')">
<img src="../pics/pic-ref_03.jpg" width="94" height="94" border=0>
</a>

Dieser Code ist aus zwei Gründen unsauber. Erstens fehlt dem img-Element das vorgeschriebene alt-Attribut, und zweitens sollte man den Aufruf von Javascript-Funktionen mit dem Pseudoprotokoll javascript: möglichst vermeiden. Der JS-Aufruf ist in einem onclick-Eventhandler besser aufgehoben, und das href-Attribut soll auf eine Ressource verweisen, die dem Besucher ohne Javascript den Inhalt auf alternativem Weg zugänglich macht.

Die JavaScript-Funktion öffnet das neue Fenster mit dem entsprechenden Bild.

Vielleicht. ;-)
Wenn Javascript aktiviert ist und der Popup-Blocker (oder sonstige Browsereinstellungen) das Öffnen eines neuen Fensters duldet.

function funOpenPictureShow(parPicture)
{
var varPictureWindow = window.open("bul-picture-show.htm","_blank");
varPictureWindow.document.getElementById("idBild").src = varPicturePath+parPicture;
}

Dabei tritt sporadisch ein Fehler auf, manchmal gibt's ein Bild in dem neuen Fenster und manchmal nicht.

Ja, das dürfte ein Timing-Problem sein. Durch window.open() wird das neue Fenster zwar sofort erzeugt, und auch die Anforderung der darin zu öffnenden Seite wird quasi sofort an den Server übermittelt. Aber es kann einen Moment dauern, bis diese angeforderten Daten auch wirklich da sind. Wenn dein Zugriff auf den Seiteninhalt nun schon erfolgt, bevor die Seite geladen ist, geht das schief.
Besser: Verlege das dynamische Laden des Bildes in die neu geladene Seite. Entweder mit DOM-Methoden, wie du es auch machst - dann aber erst über den onload-Handler. Oder übergib den Bildnamen als URL-Parameter und werte ihn in der neu geladenen Seite über location.search aus.

Ach ja, ... wie kann man sich aus dem Forum ausloggen?

Wie sollte man? Man loggt sich ja technisch gesehen auch nicht ein. Hier findet ja "nur" ein HTTP-AUTH statt.

So long,
 Martin

--
Lieber blau machen, als sich schwarz ärgern.