Netscape 6 Probleme mit verborgenen Ebenen
Martin
- browser
Hallo liebe Webdesigner und Programierer,
ich baue mit dem Mac gerade eine DHTML Seite und stelle fest, dass (was auf dem IE 5 problemlos funktioniert) vom Netscape 6 nicht angezeigt wird. : verborgene DIV Ebenen die als Navigation bei Mouse over erscheinen und beim Mouse Out wieder verschwinden sollen....
(Ich arbeite mit Dreamweaver und bin nicht besonders gut im programmieren..;-)
Bitte, wer kann mir helfen ob es da noch Möglichkeiten zur Abhilfe gibt...:-) oder muss ich alle diese DHTML Elemente wieder rausschmeissen die für mein Design aber wichtig wären??
viele Grüße und Danke im Vorraus.
Martin
hi,
ich baue mit dem Mac gerade eine DHTML Seite und stelle fest, dass (was auf dem IE 5 problemlos funktioniert) vom Netscape 6 nicht angezeigt wird. : verborgene DIV Ebenen die als Navigation bei Mouse over erscheinen und beim Mouse Out wieder verschwinden sollen....
(Ich arbeite mit Dreamweaver
die vorgefertigten scripte von macromedias editoren sind grösstenteils, 'tschuldigung, mist.
und bin nicht besonders gut im programmieren..;-)
das kann man ja lernen.
http://selfhtml.teamone.de/javascript/ ist ein erste gute anlaufstelle dafür.
oder muss ich alle diese DHTML Elemente wieder rausschmeissen die für mein Design aber wichtig wären??
wichtig für dein design können sie ja eigentlich gar nicht sein, da du doch sicher bedacht hast, dass eine seite auch nutzbar sein sollte, wenn JS nicht zur verfügung steht. sie können also allerhöchstens optionales optisches gimmick sein, aber nicht "wichtig".
gruss,
wahsaga
Hi und danke für Deine Antwort,
ich werde versuchen mich zu bessern und nach und nach dazulernen ... bin schon dabei:-)!!
"...dass eine seite auch nutzbar sein sollte, wenn JS nicht zur verfügung steht.."
Heisst das man muss auf JS deshalb ganz verzichten oder schreibt Dreamweaver nur den falschen Code den ich verbessern könnte?
Vielleicht gibst Du mir einen Tip wo der Haken liegen könnte?
..............
<div id="Layer2" style="position:absolute; left:50px; top:50px; width:79px; height:69px; z-index:2; visibility: visible"><a href="#" onMouseOut="MM_swapImgRestore();MM_showHideLayers('Layer3','','hide')" onMouseOver="MM_swapImage('Image10','','images/navig/nav_6.gif',1);MM_showHideLayers('Layer3','','show')">
............................
das ist ein Stückchen aus dem Code wo die Sichtbarkeit geändert wird...
Gruß Martin
Hallo.
Heisst das man muss auf JS deshalb ganz verzichten oder schreibt Dreamweaver nur den falschen Code den ich verbessern könnte?
Ob du den Code verbessern kannst oder die Funktion leiber gleich selbst schreibst, musst du wohl selbst entscheiden.
das ist ein Stückchen aus dem Code wo die Sichtbarkeit geändert wird...
Dieser enthält aber nur Funktionsaufrufe in Event-Handlern. Um den JS-Code beurteilen zu können, müsstest du schon schon diesen präsentieren.
MfG, at
Hallo und danke,
Dieser enthält aber nur Funktionsaufrufe in Event-Handlern. Um den JS-Code beurteilen zu können, müsstest du schon schon diesen präsentieren.
Sorry, hier ist der JS code aus dem head Bereich.
fällt dir etwas auf warum netscape diesen nicht interpretieren kann?
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
Ob du den Code verbessern kannst oder die Funktion leiber gleich selbst schreibst, musst du wohl selbst entscheiden.
dazu weiss ich zu wenig welche tags netscape versteht und welche nicht!
gruß Martin
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }Ob du den Code verbessern kannst oder die Funktion leiber gleich selbst schreibst, musst du wohl selbst entscheiden.
dazu weiss ich zu wenig welche tags netscape versteht und welche nicht!
Hallo!
um aktuelle Netscape und Mozilla Versionen zu testen, würde ich den Netscape 7.1 und nicht den grottenschlechten 6 nehmen, aber das hat mit deinem Problem vermutlich nichts zu tun...
Das wichtigste hast du vergessen:
die Funktion MM_findObj()
Auf die kommt es an.
Außerdem solltest du die Javascript Konsole öffnen und nachsehen welcher Fehler auftritt. Falls Netscape die Konsole nicht hat: Netscape löschen und aktuellen Mozilla installieren.
Es ist schon klar dass du dich mit Javascript nicht auskennst, deshalb ja auch die Empfehlung es zu lernen. Dazu ist Selfhtml (u.a.) ja da...
Dominik
Hallo Dominik,
danke,den Netscape 7 werde ich mir später holen auch Mozilla.
Mein Problem im Moment ist wie baue ich für beide Browser IE und Netscape diese funktion "ebene sichtbar bei mouse over, unsichtbar bei mouse out" ? die og. Dreamweaver-programmierung funktioniert prima (aber nur beim IE!)
..
Das wichtigste hast du vergessen:
die Funktion MM_findObj()
Auf die kommt es an.
Was meinst Du damit?
Es ist schon klar dass du dich mit Javascript nicht auskennst, deshalb ja auch die Empfehlung es zu lernen. Dazu ist Selfhtml (u.a.) ja da...
Ja,das werde ich. Ich habe dort nachgesehen.... die JS-syntax "visible" gibt es laut selfhtml nur im zusammenhang mit "layers", und die werden von IE nicht erkannt. also muss es eine andere Lösung geben? auf der seite www.oegs.de funkt.es zB. browserunabhängig!??
besten Gruß Martin
Das wichtigste hast du vergessen:
die Funktion MM_findObj()
Auf die kommt es an.Was meinst Du damit?
du hast die Funktion
function MM_showHideLayers() { //v3.0
hier gepostet. Ich vermute aber dass der Fehler in der Funktion MM_findObj() liegt. Dies wird insbesondere dann der Fall sein, wenn die verwendete Dreamweaver Version veraltet ist. Leider hast du diese Funktion nicht gepostet, sie wird aber von MM_showHideLayers() aufgerufen, wie du sehen kannst...
Eine leichte Fehlerdiagnose erlaubt auch die Javascript Konsole des Browsers, hier wird angezeigt welcher Fehler auftrat. Viel besser als die unzuverlässige Glaskugel :-)
Dominik
Hallo Dominik,
du hast die Funktion
function MM_showHideLayers() { //v3.0
hier gepostet. Ich vermute aber dass der Fehler in der Funktion MM_findObj() liegt. Dies wird insbesondere dann der Fall sein, wenn die verwendete Dreamweaver Version veraltet ist. Leider hast du diese Funktion nicht gepostet, sie wird aber von MM_showHideLayers() aufgerufen, wie du sehen kannst...
Meintest Du diesen Teil des Codes:...?
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
Eine leichte Fehlerdiagnose erlaubt auch die Javascript Konsole des Browsers, hier wird angezeigt welcher Fehler auftrat. Viel besser als die unzuverlässige Glaskugel :-)
Leider bietet Netscape6 keine JS Konsole mit Fehlermeldung an.
Ich muss mir erst den Mozilla besorgen (gibt-s hoffentlich auch für den Mac? Ich arbeite übrigens mit Mac Os9 und Dreamweaver Ultra Dev 97-2000)
Irgenteine Möglichkeit muss es geben den auf der oegs.de webseite funktioniert es auch! :-) die ist übrigens auch mit Dreamweaver erstellt, aber es wird eine externe JS-Datei aufgerufen die ich nicht durchschaue....
Gruß, Martin
Hallo!
Meintest Du diesen Teil des Codes:...?
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
ja, genau. Daran liegt es, die verwendete Dreamweaver Version erstellt veraltetes Javascript. Du kannst aber einfach diese Funktion durch folgende neuere ersetzen, dann sollte es klappen:
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}
Leider bietet Netscape6 keine JS Konsole mit Fehlermeldung an.
Ich muss mir erst den Mozilla besorgen (gibt-s hoffentlich auch für den Mac? Ich arbeite übrigens mit Mac Os9 und Dreamweaver Ultra Dev 97-2000)
Für Mac OS 9 gibt es Netscape 7.02:
http://ftp.netscape.com/pub/netscape7/german/7.02/mac/macos8/
sowie Mozilla 1.2.1:
http://www.mozilla.org/releases/old-releases-1.1-1.4rc3.html (etwas nach unten scrollen..)
neuere Versionen gibt es leider nur für Mac OS X, aber auch diese sind schon viel besser als Netscape 6. Mozilla hat eine Javascript Konsole, bei Netscape 7 bin ich mir nicht sicher.
Irgenteine Möglichkeit muss es geben den auf der oegs.de webseite funktioniert es auch! :-) die ist übrigens auch mit Dreamweaver erstellt, aber es wird eine externe JS-Datei aufgerufen die ich nicht durchschaue....
ja, natürlich geht das auch mit Netscape 6/7 und Mozilla. Neuere Dreamweaver Versionen erzeugen die o.g. Funktion, welche sich auch auf der Seite oegs.de findet und mit Mozilla/Netsape7 klappt.
Man kann diese Funktion natürlich auch bei den erzeugten Seiten manuell einbinden, ist billiger als eine neue Dreamweaver Version.
Dominik
Hallo Dominik,
Super:::--)tausend Dank für dein Engagement und die vielen Infos, ich probier das morgen gleich aus.
Übrigens aus einer newsgroup erfahre ich gerade, dass der alte Netscape 4.5 meine Datei richtig anzeigt..?...strange world!
(Es wird auch Zeit für einen neueren Dreamweaver wie ich sehe.)
gruß Martin
Hallo!
Meintest Du diesen Teil des Codes:...?
Hallo Dominik,
hat leider doch nicht geklappt. Vielleicht muss das ganze script überarbeitet werden...:?
Icgh probier es weiter
Gruß Martin
Hallo!
hat leider doch nicht geklappt. Vielleicht muss das ganze script überarbeitet werden...:?
es klappt auf jeden Fall so, habe ich selber so schon gemacht. Eventuell muss du noch eine weitere Funktion ändern, und nicht nur die eine. Das ganze Skript muss normalerweise nicht geändert werden.
Wie gesagt, es ist schwierig das ohne Javascriptkonsole eines aktuellen Mozillas zu machen. Denn "klappt nicht" ist viel zu ungenau.
Also Mozilla installieren, in SELFHTML nachlesen (Kapitel DHTML, Javascript), und anhand der Fehlermeldung reparieren.
Dominik