einfache browserabfrage
Bernhard Grabietz
- browser
tag zusammen
mein problem:
ich hab eine navigation mit pullups in form von <div> layern,
die ich auf mouseover zeige.
hab eine einfache javascriptabfrage
_______________________________________
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
_______________________________________
je nach browser gebe ich nun den layern den zustand
show/visible bzw hide/hidden
das funktioniert dann mal spontan bei dem 6er und 7ner netscape nicht.
habe da eine abfrage gemacht:
_______________________________________________
var ns4 = (document.getElementById)? true:false
_______________________________________________
gibt mir dann auch als ns4 im alert gleich true aus.
aber pullups funktionieren trotzdem nicht.
aber dann auch nicht mehr im 4.7ner netscape.
hat jemand damit schon erfahrung, oder kennt ne abfrage, oder lautet der visible-status bei den beiden neuen netscape anders??
Hi,
dazu gibt es ausreichend Beispiele und Erläuterungen im Archiv:
</archiv/2002/10/25287/#m138648>
</archiv/2002/4/8861/#m48959>
</archiv/2001/8/28086/#m146491>
(http://www.google.com/search?q=layers+all+getelementbyid+visibility+site%3Aforum.de.selfhtml.org)
LG Roland
Hi,
hab eine einfache javascriptabfrage
jau.
das funktioniert dann mal spontan bei dem 6er und 7ner netscape nicht.
Natürlich nicht. Mozilla kennt keines der beiden proprietären Ansätze.
var ns4 = (document.getElementById)? true:false
Das ist falsch; Netscape 4 kann kein DOM. Du brauchst eine _dritte_ Variable mit genau dieser Abfrage, die anschließend bevorzugt zu behandeln ist (neuere IE und Opera kennen beides, sollten aber idealerweise mit DOM eingesetzt werden).
aber pullups funktionieren trotzdem nicht.
In Mozilla-Browsern? Hast Du denn den späteren Code auch auf DOM angepasst?
aber dann auch nicht mehr im 4.7ner netscape.
Natürlich nicht, der kennt schließlich kein DOM.
Cheatah
1. scheisse, voll nen wolf geschrieben, hats nicht eingetragen!
2. mein problem genauer.
javascript browserabfrage:
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
das ist soweit klar, funst auch super
neue abfrage:
var others = (document.getElementById)? true:false
als alert gibt auch bei den beiden neuen netscapes true aus. also auch ok.
mein problem die show/hide funktionen
sehen bei mir wie folgt aus:
function show(id) {
if (ns4) document.layers[id].visibility = "show"
else if (ie4) document.all[id].style.visibility = "visible"
}
function hide(id) {
if (ns4) document.layers[id].visibility = "hide"
else if (ie4) document.all[id].style.visibility = "hidden"
}
nun ist meine frage, wie bin ich die andere anweisung für die neuen netscapes ein!???
meine idee war ja:
else if (others) document.getElementById[id].style.visibility = "visible"
oder eben
else if (others) document.getElementById[id].style.visibility = "hidden"
aber das funktioniert nicht. und das regt mich gerade voll auf!!!
1. scheisse, voll nen wolf geschrieben, hats nicht eingetragen!
2. mein problem genauer.
javascript browserabfrage:
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
das ist soweit klar, funst auch super
neue abfrage:
var others = (document.getElementById)? true:false
als alert gibt auch bei den beiden neuen netscapes true aus. also auch ok.
mein problem die show/hide funktionen
sehen bei mir wie folgt aus:
function show(id) {
if (ns4) document.layers[id].visibility = "show"
else if (ie4) document.all[id].style.visibility = "visible"
}
function hide(id) {
if (ns4) document.layers[id].visibility = "hide"
else if (ie4) document.all[id].style.visibility = "hidden"
}
nun ist meine frage, wie bin ich die andere anweisung für die neuen netscapes ein!???
meine idee war ja:
else if (others) document.getElementById[id].style.visibility = "visible"
oder eben
else if (others) document.getElementById[id].style.visibility = "hidden"
aber das funktioniert nicht. und das regt mich gerade voll auf!!!
Hi,
var others = (document.getElementById)? true:false
ich würde die Variable "dom" nennen, denn genau darum geht's. "others" ist schon allein deswegen falsch, weil z.B. IE 3 unter keine der Rubriken fällt.
if (ns4) document.layers[id].visibility = "show"
else if (ie4) document.all[id].style.visibility = "visible"
if (dom) { ... }
else if (ns4) { ... }
else if (ie4) { ... }
Gib DOM immer Priorität.
nun ist meine frage, wie bin ich die andere anweisung für die neuen netscapes ein!???
Beschäftige Dich im JavaScript-Kapitel mit DOM. Es ist ein von document.all und document.layers vollkommen verschiedener Ansatz, der neu erlernt werden muss.
else if (others) document.getElementById[id].style.visibility = "visible"
document.getElementById() ist eine Methode, kein Array.
aber das funktioniert nicht.
"Funktioniert nicht" funktioniert nicht. Fehlerbeschreibung, bitte; also u.a. Fehlermeldung und Deine Analyse.
und das regt mich gerade voll auf!!!
Don't panic. Es ist einfach nur anders, genau wie document.all anders als document.layers ist.
Cheatah
hi Cheatah,
thx, läuft.
hasta