javascript und netscape - ich könnte kotz.....
badenzer
- javascript
hallo
das kann doch nicht wahr sein !
habe die dreamweaver navigationsleite komplett neu programmiert [siehe thread unten] (ja, ich weiss: den code könnte man 100 Mal abkürzen, aber ich habe ihn zu demozwecken extra super lang gemacht) und irgendwo habe ich nen saudummen fehler drinnen, so dass der netscape 6 nur scheisse baut (dahingegen ie 6 ohne probs)
also ich habe ein navi frame (vorläufig 3 menüpunkte) mit folgendem javascript:
<script language="JavaScript">
<!--
var markiert = 0;
var markiert_alt = 0;
function aktiviere(name, quelle)
{
if (markiert == 1 && name == "aktuelles") {}
else if (markiert == 2 && name == "lehre") {}
else if (markiert == 3 && name == "lehrstuhl") {}
else {
if (name == "aktuelles")
{ markiert_alt = markiert;
markiert = 1;
document[name].src=quelle;
}
if (name == "lehre")
{
markiert_alt = markiert;
markiert = 2;
document[name].src=quelle;
}
if (name == "lehrstuhl")
{
markiert_alt = markiert;
markiert = 3;
document[name].src=quelle;
}
if (markiert_alt != 0)
{
if (markiert_alt == 1)
{
document['aktuelles'].src='aktuelles_off.gif';
}
if (markiert_alt == 2)
{
document['lehre'].src='lehre_off.gif';
}
if (markiert_alt == 3)
{
document['lehrstuhl'].src='lehrstuhl_off.gif';
}
}
}
}
function tausche(name, quelle)
{
if (markiert == 1 && name == "aktuelles")
{
document[aktuelles].src=aktuelles_on.gif;
}
else if (markiert == 2 && name == "lehre")
{
document[lehre].src=lehre_on.gif;
}
else if (markiert == 3 && name == "lehrstuhl")
{
document[lehrstuhl].src=lehrstuhl_on.gif;
}
else
{
document[name].src=quelle;
}
}
//--></script>
die ansteuerung des Sciptes geht über:
<a href="../aktuelles/aktuelles_index.htm" target="unten" onmouseover="tausche('aktuelles', 'aktuelles_over.gif')" onmouseout="tausche('aktuelles', 'aktuelles_off.gif')" onclick="aktiviere('aktuelles', 'aktuelles_on.gif')"><img src="aktuelles_off.gif" width="80" height="17" border="0" name="aktuelles"></a>
<a href="../lehre/lehre_index.htm" target="unten" onmouseover="tausche('lehre', 'lehre_over.gif')" onmouseout="tausche('lehre', 'lehre_off.gif')" onclick="aktiviere('lehre', 'lehre_on.gif')"><img src="lehre_off.gif" width="58" height="17" border="0" name="lehre"></a>
<a href="../lehrstuhl/lehrstuhl_index.htm" target="unten" onmouseover="tausche('lehrstuhl', 'lehrstuhl_over.gif')" onmouseout="tausche('lehrstuhl', 'lehrstuhl_off.gif')" onclick="aktiviere('lehrstuhl', 'lehrstuhl_on.gif')"><img src="lehrstuhl_off.gif" width="82" height="17" border="0" name="lehrstuhl"></a>
irgendwo muss da was saudummes drinnen sein, was der netscape hasst !?
merci
Hallo badenzer,
irgendwo muss da was saudummes drinnen sein, was der netscape hasst !?
Vielleicht solltest Du es statt mit document[irgendwas] lieber mit document.images[irgendwas] probieren? Dass document[irgendwas] im IE klappt ist ja kein Wunder - aber auch falsch.
Grüße,
Christian
Hi Christian,
Aua --> ja das kommt der Lösung schon sehr nahe
Du bist ein Schatz ;-)
Jetzt fehlt nur noch eines zur Vollkommenheit !
Das vorhin aufgeführte Skript steht in einem Frame Namens "oben".
Nun möchte ich von einem anderen Frame auf das Frame "oben" zugreifen, um einen anderen Menüpunkt zu aktivieren
In meiner Naivität dachte ich, machste in den BODY des anderen Frames:
onload="parent.oben.aktiviere('aktuelles', 'aktuelles_on.gif')"
Mit dem Ergebnis, dass der Netscape in dieser Sekunde sämtliche Grafiken aus dem Frame "oben" einfach rauslöscht .... Sauerei !
??? merci
morgens ;-)
onload="parent.oben.aktiviere('aktuelles', 'aktuelles_on.gif')"
mit einem EventHandler wie "onload" kannst du Funktionen aus deinem Javascript aufrufen, also zum Beispiel
<body onload="aktiviere(xx,yy)">
aber keine neuen Javascript-Befehle ausführen lassen - es sei denn, du schreibst den Javascript-Code vollständig rein:
<body onload="javascript:parent ...">
Wenn deine Funktion nun auf eine nicht vorhandene "src"-Angabe verweist, wissen weder Netscape noch andere Browser was damit anzufangen. Schlußfolgerung: schreib deine Javascript-Funktion im Header so, daß der Browser (egal, ob Netscape oder sonst einer) was damit anfangen kann.
Mit dem Ergebnis, dass der Netscape in dieser Sekunde sämtliche Grafiken aus dem Frame "oben" einfach rauslöscht
Nö, Netscape "löscht" nix. Er kanns bloß nicht darstellen, obwohl er sich gewiß die größte Mühe gibt, deine Anweisungen zu befolgen
.... Sauerei !
nana, wer wird denn ...
Grüße aus Berlin
Christoph S.
auch guten morsche !
ich weiss net obs an meinen zuviel Halben liegt, die ich an dieser zwangsmässigen Samstagnachschicht eingeworfen habe, aber
onload="javascript:parent.oben.aktiviere('aktuelles', 'aktuelles_on.gif')"
funktioniert im netscape 6 keinen meter
deine aussage, dass auch alle anderen browser bei Weglassen des "javascript: ...." nicht wissen was sie machen sollen, scheint nicht ganz korrekt zu sein: beim IE 6 funktioniert es supi !
ich kann mir nicht helfen, aber ich bin ein Kind des *Kommerz* IE, vielleicht kann mir jemand nicht so verblendetes weiterhelfen ...
merci
Wenn deine Funktion nun auf eine nicht vorhandene "src"-Angabe
verweist, wissen weder Netscape noch andere Browser was damit
anzufangen. Schlußfolgerung: schreib deine Javascript-Funktion im >> Header so, daß der Browser (egal, ob Netscape oder sonst einer) >> was damit anfangen kann.
das hab ich übrigens auch net so ganz verstanden ....
alle schon am schlafen :-(
Hallo Christoph,
mit einem EventHandler wie "onload" kannst du Funktionen aus deinem Javascript aufrufen, also zum Beispiel
<body onload="aktiviere(xx,yy)">
aber keine neuen Javascript-Befehle ausführen lassen
Selbstverständlich kann man das. Ein onmouseover="this.style...." ist absolut korrekt.
<body onload="javascript:parent ...">
Das 'javascript:' hat da eigentlich nichts verloren. Es ist m.E. sogar falsch, das hier zu verwenden. Man braucht das nur im 'href'-Attribut, um kenntlich zu machen, daß jetzt ein Javascript-Verweis folgt. 'In' den Eventhandlern kann nur Javascript stehen.
Gruß, Jan
Habe zum Verdeutlichen das ganze jetzt Mal zum Ausprobieren auf einen Server geladen
http://home.arcor.de/kulmbacher/test1/
vielleicht wird es so deutlicher