Problem beim Browserübergreifenden Bildwechsel
Olli
- javascript
0 Cheatah
Hallo Community
Ich habe schon vor eininger Zeit einen ähnlichen Thraed wie diesen gestartet. Mein Problem ist demnach auch fast das gleiche.
Ich will über einen Frame hinaus Bilder wechseln. Ich habe dazu einen neuen Quellcode geschrieben, den ich teilweise aus einem Artikel kopiert und für meine Bedürfnisse modifieziert habe.
Allerdings funktioniert der Code nur beim IE. Beim NN4 versagt er, wie es bei NN6 aussieht, weiss ich leider nicht.
Es kommt beim NN4 folgende Fehlermeldung in der Javascript-Console: document.layers.aktive_38 has no properties. Damit kann ich aber nicht so richtig was anfangen.
Der Code ist nur für eine Seite geschrieben, also ohne Frames. Aber wenn ich alles richtig verstanden habe, müsste dazu nur eine kleine Änderung vorgenommen werde. Ich habe es im Quellcode kommentiert...
<script language="JavaScript">
var B_Type = new CrossBrowserType();
function CrossBrowserType() {
this.IE = false;
this.NS4 = false;
this.NS6 = false;
this.id = "";
if (document.all) {this.IE = true; this.id="IE";}
else if (document.getElementById) {this.NS6 = true; this.id="NS6";}
else if (document.layers) {this.NS4 = true; this.id="NS4";}
}
function CrossGetObject(id) { alert('Get Object');
var obj = null;
if (B_Type.IE) obj=document.all[id];
else if (B_Type.NS6) obj=document.getElementById(id);
else if (B_Type.NS4) obj=document.layers[id];
return obj;
}
function MausOver(wahl) {
if (wahl == 'saison') {
var img = null;
if (B_Type.IE) {alert ('IE'); document.images['aktive_38'].src = "images/aktive_38_over.jpg";}
if (B_Type.NS4) {alert ('NS4'); document.layers['aktive_38'].src = "images/aktive_38_over.jpg";}
if (B_Type.NS6) {alert ('NS6'); document.getElementById('aktive_38').src = "images/aktive_38_over.jpg";}
// |--> hier muss doch bei allen drei Aufrufen statt dem document... folgendes ergänzt werde: parent.FrameName.document... ODER????
}
}
function nix() { }
</script>
</head>
<body onlaod="javascript: CrossBrowserType()">
<div id="aktive-38" name="aktive-38">
<a href="#" onmouseover="MausOver('saison');"
onmouseout="nix();"
onclick="nix();">
<img name="aktive_38" src="images/aktive_38.jpg" width="140" height="16" border="0" alt="" /></a>
</div>
Also vielleicht kann sich jemand meinem Problem annehmen und mir meine Fehler aufzeigen, oder sogar den berichtigten Code schreiben.
Vielen Dank
Gruss OLLI
Hi,
Allerdings funktioniert der Code nur beim IE. Beim NN4 versagt er, wie es bei NN6 aussieht, weiss ich leider nicht.
warum nicht?
Es kommt beim NN4 folgende Fehlermeldung in der Javascript-Console: document.layers.aktive_38 has no properties. Damit kann ich aber nicht so richtig was anfangen.
alert(document.layers.aktive_38);
Anschließend lies im DHTML-Kapitel nach, was ein Layer bei Netscape 4 beinhaltet.
<script language="JavaScript">
ERROR: Required attribute "type" missing.
if (document.all) {this.IE = true; this.id="IE";}
Das ist übrigens verhältnismäßig uninteressant. Nur dem IE 4 ist DOM unbekannt.
// |--> hier muss doch bei allen drei Aufrufen statt dem document... folgendes ergänzt werde: parent.FrameName.document... ODER????
Der Verzicht auf Frames wäre die bessere Alternative.
<body onlaod="javascript: CrossBrowserType()">
Was ist "javascript:" für ein JavaScript-Befehl, sprich: Was hat der Unsinn in einem Event-Handler (der zudem falsch geschrieben ist) verloren?
<a href="#" onmouseover="MausOver('saison');"
Warum missachtest Du denjenigen Teil Deiner User, der kein JavaScript aktiviert haben will, kann oder darf?
<img name="aktive_38" src="images/aktive_38.jpg" width="140" height="16" border="0" alt="" /></a>
Ich vermute, Du hast auch den XHTML-Doctype angegeben, richtig?
Cheatah