script funktioniert mit IE+NN6 aber nich mit NN4!
Humusbäär
- javascript
HAllo!
Ich hab hier nen script das nen Button als "Active" setzt! Funktioniert auch einwandfrei ausser im NN4!!!
Selbst wenn ich anstatt document -->> document.layername schreib funktioniert es nich! ;/
Wäre super lieb wenn mir jemand helfen könnte!
THX schonmal im Voraus!
greetz|Humusbäär
<script language="JavaScript">
var bildzahl = 2;
var aktuell;
function wechsel(bildname,aktbild,zustand){
//alert ('zustand:' + zustand + ' bild:' + aktbild);
if (zustand=='over') {
var schaltbild = bildname + aktbild;
document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
}
if (zustand=='out') {
var schaltbild = bildname + aktbild;
if (aktbild != aktuell){
document[schaltbild].src =bildname+"_aus.gif"; /*Zustand nach OnMouseOut*/
}
}
if (zustand=='click') {
aktuell = aktbild;
for (i=1;i<=bildzahl;i++) {
schaltbild = bildname + i;
if (i == aktbild) {
// alert('schalte an : ' + schaltbild);
document[schaltbild].src =bildname+"_an.gif"; /*Zustand nach OnClick*/
}else{
// alert(' AUS: ' + schaltbild);
document[schaltbild].src =bildname+"_aus.gif";
}
} // for i ==
}
return true;
} // ende gesamtfunction
</script>
Moin!
Ich hab hier nen script das nen Button als "Active" setzt! Funktioniert auch einwandfrei ausser im NN4!!!
Selbst wenn ich anstatt document -->> document.layername schreib funktioniert es nich! ;/
Zugriff auf Bilder erfolgt über document.images["bildname"]. Wenn das Bild in einem Layer enthalten ist und Netscape 4 verwendet wird, dann über document.layers["layername"].document.images["bildname"]. Wenn tiefere Verschachtelungen vorhanden sind, möglicherweise mit noch mehr document.layers["layername"] davor.
Wäre super lieb wenn mir jemand helfen könnte!
Man kann dir nur helfen, wenn du auch den HTML-Code des Bildes genauer angibst.
if (zustand=='over') {
var schaltbild = bildname + aktbild;
document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
Was ist denn das hier für ein Zugriff? Scheint mir irgendwie falsch zu sein. Kommt später noch häufiger vor.
}
- Sven Rautenberg
Hallo Sven
Drängelst Du dich einfach vor - gar nicht nett finde ich das ;-)
if (zustand=='over') {
var schaltbild = bildname + aktbild;
document[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
Was ist denn das hier für ein Zugriff? Scheint mir irgendwie falsch zu sein. Kommt später noch häufiger vor.
}
Nein, ist richtig.
In JS is objekt.property gleichbedeutend mit objekt["property"];
Nettes Beispiel:
alert(window["location"]["href"]);
Tut zu mindest im Mozilla, sollte aber auch im IE tun.
Wie konsequent der NN4 das allerdings umsetzt, weiß ich nicht.
Grüße
Daniel
Also erstmal THX für eure schnellen Antworten!
Also entweder macht mir heute die Hitze zu arg zu schaffen oder sonstwas :) aber es läuft nich ;/
Ich geb euch hier mal den ganzen code:
Die Seite is teil eines Framesets:
<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4522.1800" name=GENERATOR>
<script language="JavaScript">
var bildzahl = 2;
var aktuell;
function wechsel(bildname,aktbild,zustand){
//alert ('zustand:' + zustand + ' bild:' + aktbild);
if (zustand=='over') {
var schaltbild = bildname + aktbild;
document.layers[naviv].document.images[schaltbild].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
}
if (zustand=='out') {
var schaltbild = bildname + aktbild;
if (aktbild != aktuell){
document.layers[naviv].document.images[schaltbild].src =bildname+"_aus.gif"; /*Zustand nach OnMouseOut*/
}
}
if (zustand=='click') {
aktuell = aktbild;
for (i=1;i<=bildzahl;i++) {
schaltbild = bildname + i;
if (i == aktbild) {
// alert('schalte an : ' + schaltbild);
document.layers[naviv].document.images[schaltbild].src =bildname+"_an.gif"; /*Zustand nach OnClick*/
}else{
// alert(' AUS: ' + schaltbild);
document.layers[naviv].document.images[schaltbild].src =bildname+"_aus.gif";
}
} // for i ==
}
return true;
} // ende gesamtfunction
</script>
</HEAD
<BODY background="rightFrame-Dateien/rightframedhgr.jpg">
<DIV id=Layer1
style="Z-INDEX: 1; LEFT: 0px; WIDTH: 35px; POSITION: absolute; TOP: -2px; HEIGHT: 45px"><IMG
height=623 src="rightFrame-Dateien/test.jpg" width=220></DIV>
<div id="Layer2" style="position:absolute; left:75px; top:294px; width:79px; height:54px; z-index:2">
<p><a href="http://www.google.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild1" width="19" height="18" border="0" id="bild1"
onMouseOver="wechsel('bild','1','over')" onMouseOut="wechsel('bild','1','out')"
onClick="wechsel('bild','1','click')"></a>
<p><a href="http://www.twchno-galaxy.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild2"
width="19" height="18" border="0" id="bild2" onMouseOver="wechsel('bild','2','over')" onMouseOut="wechsel('bild','2','out')"
onClick="wechsel('bild','2','click')"></a>
<p><a href="http://www.kotzen.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild3" width="19"
height="18" border="0" id="bild3"></a>
<p> </p>
</div>
</BODY></HTML>
Hallo Humusbäär
Dein Script erschließt sich mir jetzt beim ersten Durchlesen und ohne Kontext nicht ganz, aber die Logik scheint ja zu stimmen.
Anscheinend befinden sich die Bilder innerhalb eines Layers.
Dann musst Du die im NN4 so ansprechen:
document.layername.document["bildname"]
eventuell .images["bildname"] da bin ich mir nicht mehr ganz sicher.
Wichtig ist jedenfalls das 2. document. NN4 betrachtet den Inhalt von Layern wiederum als Dokument.
Grüße
Daniel
Tag auch
Also jetzt schlägt's 13 (in Worten: dreizehn - nicht zu verwechseln mit drei Zehen).
Du hast es also geschafft, nach meinem Hinweis von letzter Woche, das script aus http://www.selfhtml.org/sfausles/tsfa_tcg.htm#a4 zu kopieren und auf Deine Bedürfnisse umzuschreiben.
Respekt!
Hast Du danach Dein Gehirn ausgeschaltet? Oder wie ist es sonst zu erklären, daß Du den unmißverständlichen Hinweis unter dem Beispiel übersehen hast?
Zitat von dieser Seite:
"Hinweis:
Befinden sich Ihre Buttons in absolut positionierten Bereichen, so werden im Netscape Navigator ab der Version 4 die Bilder mit document.Layername.document.Bildname angesprochen. Lesen Sie hierzu auch den SELFHTML-Abschnitt layers - document und die Forum-Auslesebeiträge Positionierung von dynamischen grafischen Buttons und Referenzierung von Bildern in <div>-Umgebungen, Netscape vs. IE."
So, und nun machst Du Dich selbst auf die Socken und suchst eine Lösung.
Thomas J.
not amused
Sorry ja das hatte ich ja auch gelesen!
Deswegen hatte ich auch im ersten Beitrag gleich geschrieben das es trotz document.layername.document nich funktionieren tut!
In der Zwischenzeit hab ich echt alle möglichen kombinationen durch und weiss wirklich nicht mehr weiter! ;/
Wäre trotzdem sehr lieb wenn ihr mir noch helfen könntet!
Is nich so das ich n fauler sack bin und hier andere leute für mich schaffen lassen will!
Ich geb mal nochmal den Code mit in der Hoffnung das mir jemand helfen kann:
<HTML><HEAD><TITLE>Untitled Document</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4522.1800" name=GENERATOR>
<script language="JavaScript">
var bildzahl = 2;
var aktuell;
function wechsel(bildname,aktbild,zustand){
//alert ('zustand:' + zustand + ' bild:' + aktbild);
if (zustand=='over') {
var schaltbild = bildname + aktbild;
document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_an.gif"; /*Zustand beim OnMouseOver*/
}
if (zustand=='out') {
var schaltbild = bildname + aktbild;
if (aktbild != aktuell){
document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_aus.gif"; /*Zustand nach OnMouseOut*/
}
}
if (zustand=='click') {
aktuell = aktbild;
for (i=1;i<=bildzahl;i++) {
schaltbild = bildname + i;
if (i == aktbild) {
// alert('schalte an : ' + schaltbild);
document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_an.gif"; /*Zustand nach OnClick*/
}else{
// alert(' AUS: ' + schaltbild);
document.layers["naviv"].document.images["bild1"].document["schaltbild"].src =bildname+"_aus.gif";
}
} // for i ==
}
return true;
} // ende gesamtfunction
</script>
</HEAD
<BODY background="rightFrame-Dateien/rightframedhgr.jpg">
<DIV id=Layer1
style="Z-INDEX: 1; LEFT: 0px; WIDTH: 35px; POSITION: absolute; TOP: -2px; HEIGHT: 45px"><IMG
height=623 src="rightFrame-Dateien/test.jpg" width=220></DIV>
<div id="naviv" style="position:absolute; left:75px; top:294px; width:79px; height:54px; z-index:2">
<p><a href="http://www.google.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild1" width="19" height="18" border="0" id="bild1"
onMouseOver="wechsel('bild','1','over')" onMouseOut="wechsel('bild','1','out')"
onClick="wechsel('bild','1','click')"></a>
<p><a href="http://www.twchno-galaxy.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild2"
width="19" height="18" border="0" id="bild2" onMouseOver="wechsel('bild','2','over')" onMouseOut="wechsel('bild','2','out')"
onClick="wechsel('bild','2','click')"></a>
<p><a href="http://www.kotzen.de" target="cframe275"><img src="../www.maerit.net/xximagesxx/knopf_aus.gif" name="bild3" width="19"
height="18" border="0" id="bild3"></a>
<p> </p>
</div>
</BODY></HTML>