【階層メニュー】に関する知恵袋

【質問】
階層ツリーメニューで、Javascript OFFクライアント対策はできないものでしょうか?Javascriptで、iPhoneの進化には、階層のメニューの知恵袋について説明すると、ツリーメニュー(treemenu)を使って以下のようにメニューを階層化しました。、…<SCRIPT language="JavaScript"><!--// ツリーメニューflag = false;function treeMenu(tName) { tMenu = document.all[tName].style; if(tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none";}//--></SCRIPT>…中略…<A href="javaScript:treeMenu('treeMenuA')">▼▼▼</a><br><DIV id="treeMenuA" style="display:">┣ <A href="http://…">●●●</A><BR>┣ <A href="http://…">▲▲▲</A><BR>┣ <A href="http://…">■■■</A><BR>┗ <A href="http://…">◆◆◆</A><BR></DIV>…ただこれだと、iPhoneの進化であれば、Javascript OFFクライアントの人は中の階層のページが開けません。だからと言って、メニューを開いた状態を初期値にしたら階層メニュー構造にしてすっきりさせた意味がありません。Javascriptが有効なクライアントにはメニューが閉じた状態が初期値で、階層のメニューの知恵袋に関連する解説をすると、Javascriptが使えないクライアントにはメニューが開いた状態にする事はできないものでしょうか?
【解答】
階層のメニューの知恵袋については、iPhoneの進化を解説します。まず、--------------------<!DOCTYPE html><title>sample</title><style>#menu ol li { list-style-image: url(data:image/gif;base64,R0lGODlhDwAPAPcAAAAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAABVMwBVZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMwDVZgDVmQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZjMrmTMrzDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmTOqzDOq/zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YrAGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2aqAGaqM2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5mAZpmAmZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmcxVzMxV/8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzMzV/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r//9VAP9VM/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP/VM//VZv/Vmf/VzP/V////AP//M///Zv//mf//zP///wAAAAAAAAAAAAAAACH5BAEAAPwALAAAAAAPAA8AAAgxAPcJHEiwoEEAAAwqRKjwYMKGBBlCHChx4j6EGDEuzKjRoUWBFSeGhDiyYcmNHycGBAA7);}#menu ol li:last-child { list-style-image: url(data:image/gif;base64,R0lGODlhDwAPAHAAACH5BAEAAPwALAAAAAAPAA8AhwAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAABVMwBVZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMwDVZgDVmQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZjMrmTMrzDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmTOqzDOq/zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YrAGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2aqAGaqM2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5mAZpmAmZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmcxVzMxV/8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzMzV/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r//9VAP9VM/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP/VM//VZv/Vmf/VzP/V////AP//M///Zv//mf//zP///wAAAAAAAAAAAAAAAAgrAPcJHEiwoEEAAAwqRKjwYMKGBBlCHChx4j6EGDEuzKjRosePIEOKHKkwIAA7);}</style><ol id="menu"> <li><span>item1</span> <ol> <li><a href="#">1.1</a></li> <li><a href="#">1.2</a></li> <li><a href="#">1.3</a></li> </ol> </li> <li><span>item2</span> <ol> <li><a href="#">2.1</a></li> <li><a href="#">2.2</a></li> </ol> </li> <li><span>item3</span> <ol> <li><a href="#">3.1</a></li> <li><a href="#">3.2</a></li> <li><a href="#">3.3</a></li> </ol> </li></ul><script>var menu = document.getElementById("menu");//初期化1(リストを非表示に)var o = menu.getElementsByTagName("OL");for(var i = 0, j = o.length; i < j; i++) { o[i].style.display = "none";}//初期化2(span要素をリンクっぽく。不要なら削除)var s = menu.getElementsByTagName("SPAN");for(i = 0, j = s.length; i < j; i++) { s[i].style.color = "#f00"; s[i].style.textDecoration = "underline"; s[i].style.cursor = "pointer";}if(menu.addEventListener) { menu.addEventListener("click", toggleMenu, false);}else if(menu.attachEvent) { menu.attachEvent("onclick", toggleMenu);}function toggleMenu(e) { var t = e.target || e.srcElement; //イベントの発生源 if(t.tagName == "SPAN") { var o = getNextOl(t); if(o.style.display == "none") { o.style.display = "block"; } else { o.style.display = "none"; } } //出し入れする対象を取得する関数 function getNextOl(s) { return s ? (s.tagName == "OL") ? s : arguments.callee(s.nextSibling) : null; }}</script>--------------------代替案です。・「閉じる」初期化処理もJavaScriptで行う・ツリー構造のHTMLをリスト(ol要素)にする(リストマーク画像使用)・他のWebブラウザでも使えるようにする(背景画像は別途用意して下さい。)iPhoneの進化を見ると、階層のメニューの知恵袋の解説は以上となります。
Webサービス by Yahoo! JAPAN