>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >не отображает javascript http://forum.mozilla-russia.org/viewtopic.php?id=16610 |
Cold.Rain > 19-04-2007 13:42:30 |
привет всем вот мой код: Выделить код Код:<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.. |
Lynn > 19-04-2007 16:16:43 |
Из явных глюков скрипта могу только сказать, что thisLevel.style.display в первый раз не определён. |
Cold.Rain > 19-04-2007 16:24:38 |
Lynn пишет
т.е... ? как определить, в таком случае? |
Lynn > 19-04-2007 16:33:21 |
Cold.Rain пишет
А зачем? Вам надо определить является ли элемент видимым, так? А вообще, в вашем примере не показано, как собственно вызываются приведённые функции… |
Cold.Rain > 19-04-2007 17:22:41 |
Выделить код Код:<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> |
Sergeys > 19-04-2007 18:38:28 |
=>Разработка |
Cold.Rain > 20-04-2007 11:24:37 |
вот мой код: Выделить код Код:<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> самое интересное, что когда вместо картинок текст - все работает. как только появляются картинки - ничего. |
Lynn > 20-04-2007 14:30:47 |
Так может у вас просто картинки не загружаются? В любом случае после file: должно быть три слеша, а не два. PS. NN4 и IE4 не существуют. Забудьте о них, не пишите лишний код. |
Cold.Rain > 20-04-2007 14:36:50 |
нет, все равно не помогло. я вроде понял что FF не любит когда onload event прямо в коде... как-то так. |