Ich verzweifle
Tobias
- javascript
0 Struppi
Hallo,
ich hab immer noch nen Problem mit nem menue in Netscape 4. Hab jetzt nen andres Script genommen. Der Teil für NC4 sieht so aus.
<script language="JavaScript">
<!--
function setvisibility(divid)
{
if (document.layers)
{ browserstyle="document."+divid;
visible="show";
}
if (browserstyle.visibility.toLowerCase() == visible)
browserstyle.visibility = "hidden";
else
browserstyle.visibility = "visible";
}
//-->
</script>
über divid kommt ne id für den css-namen. Er kommt auch richtig an. Hab das mal mit alert ausgeben lassen. Jetzt sagt mir die JavaScript-Konsole aber: browserstyle.visibility has no properties
Wieso????
Danke für eure Antworten!
Tobias
über divid kommt ne id für den css-namen. Er kommt auch richtig an. Hab das mal mit alert ausgeben lassen. Jetzt sagt mir die JavaScript-Konsole aber: browserstyle.visibility has no properties
Wieso????
Weil browserstyle nur ein String ist.
Probier mal das folgende, sollte in den meisten Browsern funktionieren:
////////////////////////////////////////////////////////////
// setVis
function setVis(id, mode)
{
var obj = getById(id);
if(!obj) return null;
if(document.layers)
{
var vis = mode ? 'show' : 'hidden';
obj['visibility'] = vis;
return obj['visibility'];
}
var vis = mode ? 'visible' : 'hidden';
return obj.style['visibility'] = vis;
}
///////////////////////////////////////////////////////////
// getById(id [, win])
function getById(id, win)
{
var doc = window.document;
if(win) doc = win.document;
if(typeof id == 'undefined') return null;
var obj = null;
if(document.getElementById) obj = doc.getElementById(id);
else if(document.layers) obj = _findObj_(id, doc);
else if(document.all) obj = doc.all[id];
return obj;
}
////////////////////////////////////////////////////////////
// Nur für den NC 4.x um Layer zu finden.
function _findObj_(n, doc)
{
if(doc[n]) return doc[n];
for(var i = 0; i < doc.layers.length; i++)
{
if(typeof doc.layers[i].document != 'undefined')
{
var obj = _findObj_(n, doc.layers[i].document);
if(obj) return obj;
}
}
return null;
}