Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка в JS (меню - дерево). Firefox отвергает, остальные нет. (https://javascript.ru/forum/misc/27729-oshibka-v-js-menyu-derevo-firefox-otvergaet-ostalnye-net.html)

ким чен ын 23.04.2012 02:12

Ошибка в JS (меню - дерево). Firefox отвергает, остальные нет.
 
Здравствуйте, господа!
Нарыл старый код :
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"//>
                    
			<script language="JavaScript">
				if (document.getElementById.layers)  {
	     				netscape = 1; iexplorer = 0; 
				} else {
	     				netscape = 0; iexplorer = 1;
	     	}
	     			
	 			function show(layer) 
	 			{
					layer.display = "inline";
				}
	    			
				function hide(layer) 
	 			{
					if (netscape) layer.display = "none";
					if (iexplorer) layer.display = "none";
				}
	    			
				function switchview(layer) 
				{
					if (netscape) layerobj = document.getElementById.layer;
					if (iexplorer) layerobj = layer.style;
					if (layerobj.display == "inline")
					{
	  				hide(layerobj);
					} else {
						show(layerobj);
	   			}
				}
			</script>

		<style type="text/css">
				#node1 {display: none; position: relative; }
			
				#node2 {display: none; position: relative; }
			
				#node3 {display: none; position: relative; }
		</style>

<div id="node0"><a href="javascript:switchview(node1);">1</a>&nbsp; One<br></div>
<div id="node1">. . <a href="javascript:switchview(node2);">2</a>&nbsp; Two<br></div>
<div id="node2">. . . . <a href="javascript:switchview(node3);">3</a>&nbsp; Three<br></div>
<div id="node3">. . . . . . 4&nbsp; <a href="http://javascript.ru">Four</a><br></div>

Firefox его не переваривает, пока есть 1-я строчка :
<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"//>

Если её убрать - FireFox выполняет скрипт. IE и Опере на тег !DOCTYPE - плевать. проблема только в FF.
Что-то недописано в JS Firebug пишет, что node1 is not defined, но где дописать, так, чтобы работало - не нашёл :(
Если кто знает - подскажите...

devote 23.04.2012 02:49

<!DOCTYPE html>
<html>
    <head>
        <script language="JavaScript">

            function show( layer ) {
                layer.style.display = "inline";
            }
                     
            function hide( layer ) {
                layer.style.display = "none";
            }
                     
            function switchview( id ) {

                var layerobj = document.getElementById( id );

                if ( layerobj.style.display == "inline" ) {
                    hide( layerobj );
                } else {
                    show( layerobj );
                }
            }
        </script>
        <style type="text/css">
                #node1 {display: none; position: relative; }
             
                #node2 {display: none; position: relative; }
             
                #node3 {display: none; position: relative; }
        </style>
    </head>
    <body>
        <div id="node0"><a href="javascript:switchview('node1');">1</a>&nbsp; One<br></div>
        <div id="node1">. . <a href="javascript:switchview('node2');">2</a>&nbsp; Two<br></div>
        <div id="node2">. . . . <a href="javascript:switchview('node3');">3</a>&nbsp; Three<br></div>
        <div id="node3">. . . . . . 4&nbsp; <a href="http://javascript.ru">Four</a><br></div>
    </body>
</html>

ким чен ын 23.04.2012 17:41

Вложений: 2
Спасибо, devote, всё заработало, во всех браузерах!

Если кому нужна простенькая менюшка, встраиваемая непрофессионалом на любой простенький сайт, то вот она :Вложение 1236 (теперь рабочая)
Вложение 1237


Часовой пояс GMT +3, время: 12:57.