Hallo Roland,
Ach Mist, da hab ich nicht alle Tuecken des Forums-Scripts bedacht (siehe <32093.html>). Da muss ich heute leider mal ein Doppelposting machen. Ich hoffe, ich habe jetzt alle "schaedlichen" Textstellen umgeschrieben.
war halt nicht dein Tag heute :-)
:-), ich habe doch auf deinen Kommentar gewartet :-)
Dann will ich Dir den erneut nicht vorenthalten.
der wieder einmal sehr aufschlußreich ist
Es liegt daran, daß gleichzeitig der Link ausgeführt wird. Da gleiche Problem existiert bei window.open() hinter href. Siehe dazu auch <../../sfausles/tsfa_tcd.htm#a3>
Wusstest Du denn auch, *warum* das passiert, was da passiert? Mit anderen Worten, was das bedeutet, dass "der Link ausgefuehrt" wird? Schmoekern wir also mal wieder in der Specification.
:-) jetzt schon, ich hatte das Warum zum damaligen Zeitpunkt nicht hinterfragt. Allerdings brachten mich deine Ausführungen auf eine Idee.
Also, wenn der Ausdruck, der da im HREF steht, etwas anderes als undefined zurueckliefert, dann wird eine Seite aufgebaut, die genau den Inhalt hat, die von dem Ausdruck zurueckgeliefert wird.
Und wieder mal: Geht!
Wie in der Auslese steht, kann man auch den eigentlichen Code in eine Funktion setzen, und die dann im HREF aufrufen. Geht auch, denn solange aus einer Funktion nichts zurueckgegeben wird (durch return mit Parameter), kommt da eben nichts zurueck; man redet dann auch von undefined *g*. Also bitte kein return true oder sowas in die Funktion schreiben!
oder aber doch :-),
ich habe mir dieses Verhalten einmal angesehen und über eine praktische Anwendung nachgedacht.
Neue Seiten generiert man ja im Allgemeinen mittels document.write(). Alles in allem eine sehr unhandliche Sache.
Warum also nicht genau die return-Eigenschaft nutzen.
<html>
<head>
<script language="JavaScript">
<!--
function test()
{
neu="<HTML><HEAD><TITLE>Moin Moin!</TITLE></HEAD><BODY><P STYLE="font-family:Arial; font-size:144pt; text-align:center;">Hallo!</P><P STYLE="text-align:right;"><A HREF="javascript:history.back();">Zurueck zum Posting</A></P></BODY></HTML>";
return neu
}
//-->
</script>
</head>
<body>
<script language="JavaScript">
<!--
self.location.href="javascript:test()";
//-->
</script>
</body>
</html>
Das klappt ausgezeichnet und man kann so ohne jede Fehlermeldung neue Seiten generieren.
Diese Eigenschaft kann man auch ganz bequem auf neue Fenster anwenden. Dann lautet eben das aufrufende Script:
<script language="JavaScript">
<!--
F=open("et.htm","Neufenster");
F.location.href="javascript:opener.test()";
//-->
</script>
Das funktioniert im IE3, Navi3, IE 4.01, IE5, Navi4.06 und Navi4.5 :-)
So Maedel, das muss erstmal reichen fuer heute. *g*
Hat mal wieder gereicht. :-)
Die andere Sache mit den windows und frames, worum es ja eigentlich ging, habe ich erstmal weggelassen.
Aber Du weisst ja, Du entkommst mir nicht! Ist also nur aufgeschoben. ;-)
hmm, erst mal genehmigt :-)
Allerdings sollten wir wirklich noch mal darauf zurückkommen. Ich habe nämlich den Verdacht, das Frameobjekt ist überflüssig.
Also dann geh ich erst mal schlafen...
Um dann bereit zu sein für eine neue Runde Theoretikeln?
Langsam mache ich mir Gedanken, ob ich nicht für die Auslese eine Rubrik "Theorie zu JavaScript" oder so ähnlich einrichte. Nun mal sehen wie sich das alles einordnet.
Viele Grüße
Antje