Netscape 6
Filip Krejcik
- javascript
Hallo.
Ich stehe gerade vor einem größeren Problem, da mit NS6 eine größere von mir programmierte Seite nicht mehr so funktioniert wie ich es gerne hätte.
Wer kann mir sagen, wo ich nachschauen kann, was man bei NS6 alles beachten muß (also was anders ist als bei den Vorgängerversionen) ?
Vielleicht kann mir jemand helfen, das folgende Script auf NS6 anzupassen ? Es soll Layer zeigen und wieder verstecken.
Vielen Dank.
<SCRIPT LANGUAGE="JavaScript">
<!--
function init(){
if (navigator.appName == "Netscape") {
layerStyleRef="layer.";
layerRef="document.layers";
styleSwitch="";
}else{
layerStyleRef="layer.style.";
layerRef="document.all";
styleSwitch=".style";
}
}
function showLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
}
function hideLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
}
init()
//-->
</SCRIPT>
Tag !
if (navigator.appName == "Netscape") {
Fehler: Du mußt unterscheiden zwischen Netscape 4 und Netscape 6, da die außer vom Namen her eigentlich nichts mehr miteinander zu tun haben.
Also: if(document.layers) // NC4
if((document.getElementById) && (!(document.all))) // NC6 (und nicht IE5)
if(document.getElementById) // NC6 und IE5+
layerRef="document.all";
styleSwitch=".style";
Müßte für Netscape 6 dann heißen:
layerRef = "document.getElementById";
styleSwitch = ".style";
function showLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
}
für NC6:
eval(layerRef + "("" + layername + "")" + styleSwitch + ".visibility = "visible"");
function hideLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
}
Auch hier wieder:
eval(layerRef + "("" + layername + "")" + styleSwitch + ".visibility = "hidden"");
Du wirst also die Funktionen für NC6 umschreiben müssen, da Du hier runde statt eckige Klammern benötigst.
Ciao,
Harry
Hi und VIELEN VIELEN DANK !
Jetzt klappt's einwandfrei.
Schönen Feiertag noch.