СообЧа > База Знаний > Интернет > Веб-строительство > Java-script

Вопрос

Я в js пока не очень разбираюсь, поэтому хотел бы уточнить, что в нижеприведенном коде может быть неправильно? Он предназаначен для показа скрытого слоя. Во Фронтпейдже пишет, что типа document.layers не является объектом…

<!--Функция для видимости/невидимости слоя-->
<SCRIPT LANGUAGE="javascript">
<!--
function showLayer(layerName)
{
document.layers[layerName].visibility='visible'
}
function hideLayer(layerName)
{
document.layers[layerName].visibility='hidden'
}
//-->
</SCRIPT>

<STYLE TYPE="text/css">

/**определяем параметры слоя**/

#Mylayer
{
z-index: 3;
position: absolute;
top: 35px;
left: 375px;
visibility: hidden;
}
</STYLE>


</head>

<body>

<!--вызов функции-->
<a href="#" onClick="showLayer('Mylayer')" >Push it</a>

<!--содержание слоя в теге div-->
<div id="Mylayer">
<table width="100" height="60">
<tr>
<td>Menu</td>
</tr>
</table>
</div>

Ответ

Вместо document.layers[layerName].visibility='hidden'
пиши document.all[layerName].style.visibility='hidden';

Или так:
document.getElementById('Nav3').style.visibility='visible';

Этот способ работает и в IE и в Mozille, но когда мы его прописываем не как функцию, а как непосредственно свойства к обработчику событий, т.е. так:

<a href="#" onClick="document.getElementById('Mylayer').style.visibility='visible'" onBlur="document.getElementById('Mylayer').style.visibility='hidden'">Push it </a>

Если же мы захотим сделать это все дело в виде функции, то придется, наверное, делать код под каждый браузер. Вроде бы так:

<!--Функция для видимости/невидимости слоя-->
<SCRIPT LANGUAGE="javascript">
<!--
function showLayer(layerName)
{
LayObj = eval("document.getElementById('" + layerName + "').style");
LayObj.visibility='visible';
}
function hideLayer(layerName)
{
LayObj = eval("document.getElementById('" + layerName + "').style");
LayObj.visibility='hidden';
}
//-->
</SCRIPT>


И вроде бы для Netsсape style.visibility заменяется просто на visibility.

Andrey, tericon, A.Z.



Copyright © 2000-2004 Сообщество Чайников
Контактная информация