привет всем

вот мой код:

Выделить код

Код:

<script language="javascript"> 

function hideLevel(id) 
{ 
var thisLevel = document.getElementById(id); 
thisLevel.style.display = "none"; 
} 

function showLevel(id) 
{ 
var thisLevel = document.getElementById(id); 
if ( thisLevel.style.display == "none") { 
thisLevel.style.display = "block"; 
} 
else { 
hideLevel(id); 
} 
} 

function hideAll() { 
hideLevel("layer1"); 
hideLevel("layer2"); 
hideLevel("layer3"); 

} 
</script>

скрипт показывает/прячет слои. когда я кликаю на ссылку - слои показываются, кликаю еще раз - убираются.

firefox не показывает этого корректтно.
т.е. - при клике появляется нужный слой , но буквально на милисекунду.

в чем может быть проблема? :|


я тут слегка поэкспериментировал, вроде бы firefox'у не нравится onLoad event..

Из явных глюков скрипта могу только сказать, что thisLevel.style.display в первый раз не определён.

Lynn пишет

Из явных глюков скрипта могу только сказать, что thisLevel.style.display в первый раз не определён.

т.е... ? как определить, в таком случае? :/

Cold.Rain пишет

как определить, в таком случае?

А зачем? Вам надо определить является ли элемент видимым, так?
Проще всего это делается проверкой offsetWidth.

А вообще, в вашем примере не показано, как собственно вызываются приведённые функции…

А вообще, в вашем примере не показано, как собственно вызываются приведённые функции…

Выделить код

Код:

<script language=javascript type='text/javascript'>

function hideDiv() 

{
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideShow').style.visibility = 'hidden';
} 
else { 
if (document.layers) { // Netscape 4 
document.hideShow.visibility = 'hidden'; 
} 
else { // IE 4 
document.all.hideShow.style.visibility = 'hidden'; 
} 
} 
} 

function showDiv() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideShow').style.visibility = 'visible'; 
} 
else { 
if (document.layers) { // Netscape 4
document.hideShow.visibility = 'visible';
}
else { // IE 4
document.all.hideShow.style.visibility = 'visible';
}
}
}
</script>

<body >



<div align="center">

<a href onClick="showDiv('hideShow');" style="cursor: hand">
<img src = "file://D:/webroot/site_pics/bo.jpg"></a>
</div>

<div id="hideShow">
<img src = "file://D:/webroot/site_pics/bo_big.jpg" onClick = "hideDiv('hideShow');">
</div>

</body>

=>Разработка

вот мой код:

Выделить код

Код:

<html> 

<head> 

<script language=javascript type='text/javascript'> 

function hideDiv() 

{ 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideShow').style.visibility = 'hidden'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.hideShow.visibility = 'hidden'; 
} 
else { // IE 4 
document.all.hideShow.style.visibility = 'hidden'; 
} 
} 
} 

function showDiv() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideShow').style.visibility = 'visible'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.hideShow.visibility = 'visible'; 
} 
else { // IE 4 
document.all.hideShow.style.visibility = 'visible'; 
} 
} 
} 
</script> 

<body onLoad = "javascript:hideDiv();"> 

<div> 

<a href onClick="showDiv('hideShow');" style="cursor: hand"> 
<img src = "file://D:/webroot/site_pics/bo.jpg"></a> 
</div> 

<div id="hideShow"> 
<img src = "file://D:/webroot/site_pics/bo_big.jpg" onClick = "hideDiv('hideShow');"> 
</div> 

</body> 
</html>

самое интересное, что когда вместо картинок текст - все работает. как только появляются картинки - ничего. :sick:

Так может у вас просто картинки не загружаются?
Вы эту страничку с диска открываете?

В любом случае после file: должно быть три слеша, а не два.

PS. NN4 и IE4 не существуют. Забудьте о них, не пишите лишний код.

нет, все равно не помогло. я вроде понял что FF не любит когда onload event прямо в коде... как-то так.
что скажете?