Layer geht in IE aber nicht mit NS
Markus Mann
- javascript
Hallo zusammen, folgendes Problem:
n = (document.layers) ? 1:0
ie = (document.all) ? 1:0
function show() {
if (n) document.layer1.visibility = "show"
if (ie) layer1.style.visibility = "visible"
}
function hide() {
if (n) document.layer1.visibility = "hide"
if (ie) layer1.style.visibility = "hidden"
}
<body onload="hide();">
<div id="layer1" STYLE="position:relative; visibility:hide">bla</div>
so, leider funktionierts nur mit IE und nicht mit Netscape.
Weder die Funktion hide noch show funktioniert mit <a href="JavaScript:hide();"
Kann mir jemand helfen?
MM
Hallo!
function show() {
if (n) document.layer1.visibility = "show"
if (ie) layer1.style.visibility = "visible"
}function hide() {
if (n) document.layer1.visibility = "hide"
if (ie) layer1.style.visibility = "hidden"
}
Vielleicht übersehe ich ja was, oder wie auch immer. Was Du da hast ist nur fast richtig. Korekt sollte es so aussehen. Das Script ist etwas unsauber.
function show() {
if (n) documentlayer.layer1.visibility = "show";
if (ie) document.all.layer1.style.visibility = "visible";
}
function hide() {
if (n) document.layer.layer1.visibility = "hide";
if (ie) document.all.layer1.style.visibility = "hidden";
}
mfg, André Laugks
Hast Recht, das war auf alle Fälle schon mal nicht sauber.
Aber leider funktioniert es immer noch nicht im Netscape (4.6)
Trotzdem Danke für die schnelle Hilfe.
MM
Hallo!
function show() {
if (n) document.layer1.visibility = "show"
if (ie) layer1.style.visibility = "visible"
}function hide() {
if (n) document.layer1.visibility = "hide"
if (ie) layer1.style.visibility = "hidden"
}Vielleicht übersehe ich ja was, oder wie auch immer. Was Du da hast ist nur fast richtig. Korekt sollte es so aussehen. Das Script ist etwas unsauber.
function show() {
»» if (n) documentlayer.layer1.visibility = "show";
»» if (ie) document.all.layer1.style.visibility = "visible";
}
»»
function hide() {
if (n) document.layer.layer1.visibility = "hide";
if (ie) document.all.layer1.style.visibility = "hidden";
}mfg, André Laugks
Hallo Andre‚,
probier mal diesen Code aus:
if (navigator.appName == "Netscape")
{
layerRef="document.layers";
styleSwitch="";
visibleVar="show";
}else
{
layerRef="document.all";
styleSwitch=".style";
visibleVar="visible";
}
function showLayer(layerName)
{eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');}
function hideLayer(layerName)
{eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');}
viele Grüße surfhead
Hallo!
»» if (n) documentlayer.layer1.visibility = "show";
Hast Du hier, zwischen document und layers den fehlenden Punkt gesehen? Hast Du bei den Stylesheets auch schön position:absolute; für den Layer zu stehen?
mfg, André Laugks
Hi André,
»»if (n) document.layer.layer1.visibility = "hide";
^............?
Funktioniert das wirklich ?
Ich hab`s bis jetzt immer wie Markus gemach. Also 'document.layer1.visibility = "hide";'
Das funktioniert bei mir zumindest einwandfrei. Eine andere Version, die ich häufiger verwende ist:
layerid = "layer1";
document.layers[layerid].visibility = "hide";
wenn ich zB. über eine Schleife mehrere Layer beeinflussen will.
Imho ist der Hauptfehler, den <div> auf 'style="position:relative"' zu setzen, was der NN (<6) afaik gewaltig stört ;-)
Gruß AlexBausW
Hi André,
»»if (n) document.layer.layer1.visibility = "hide";
^............?
Leider hab ich vorher nicht Danielas Posting gelesen. Mit Ihrer Korrektur (document.layers) funktionierts dann ja wohl ;-) Nix für ungut, hätt
ich ja auch von alleine draufkommen sollen *selbstgeisel*
Gruß AlexBausW
Hi MM
imho müsste es heissen
if (n) document.layers.layer1.visibility = "hide"
Die zum Layer gehörige Klasse heisst _layers_
Zum Stylesheet, mit style="visiblity:hidden" sollte es funktionieren. (Tut es zumindest bei
meinen Divs mit NN).
Gruss Daniela