- ベストアンサー
JavaScriptを利用しツリーメニューを作成する際の問題
- JavaScriptを利用しツリーメニューを作成しているが、ページを飛んで戻ってくるとメニューが閉じてしまう問題が発生
- ページの更新を行っても同じ問題が発生し、メニューを開いた状態に保ちたい
- 不具合の原因としては、JavaScriptでメニューの表示・非表示を切り替える処理があるためと考えられる
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 一応、Firefox 3.6 と IE 8.0 と GoogleChrome 5.0 で確認してあります。(operaでもSafariでも最新のならOKのはず) HTML5ですから、古いブラウザーはだめでしょう。 昔ながらの方法はCookie利用です。その例は、 あちこち(このカテゴリーにも)にたくさんあるので 書いても無駄かなと思ったのですが、ありがとうポイントくれるなら 書きます。
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
Cookieじゃないけど、似たようなのを使って HTML5 Web Strage を使ってみた:最新のブラウザーで試してね) ※全角空白は半角空白にしてね <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>HTML 5 WebStrage Test</title> <style type="text/css"></style> <script type="text/javascript"> function treeMenu(tName) { var tMenu = document.querySelector('#'+tName); if(localStorage.flag=='off'){ localStorage.flag='on'; tMenu.style.display='block'; }else{ localStorage.flag='off'; tMenu.style.display='none'; } } function chk(tName){ var tMenu = document.querySelector('#'+tName); tMenu.style.display=(localStorage.flag=='off')?'none':'block'; } </script> </head> <body onload=chk('treeMenu1');> <p><h3>HTML 5 WebStrage Test</h3></p> <A href="javaScript:treeMenu('treeMenu1')">○○○</a><br> <div id="treeMenu1" style="display:none"> ┣<a href="aaa.html">aaa</a><br> ┣<a href="bbb.html">bbb</a><br> ┗<a href="ccc.html">ccc</a><br> </div> </body> </html>
補足
回答ありがとうございます。 回答者様の言う通り、全角空白を半角空白に変えて、そのままタグを書いてみたんですが、 全く何も起こらず…。 JavaScriptは授業で少しかじった程度なので、 このプログラムを見ただけでは全然何が書いてあるか分かりませんし、 とても失礼なのは承知しているのですが、 回答者様はこのプログラムをHTMLで実行されましたでしょうか? もしそれでちゃんと実行されるのであれば、 私の書き方が悪いのか、 もしくは私が持っているパソコンの環境では実行されないものなんだと思いますが…。 すみませんが、 上記のプログラムを見直して頂くか、 何か別のプログラムを教えて頂けませんでしょうか?
- yambejp
- ベストアンサー率51% (3827/7415)
>開いた状態に保っておきたい クッキーに保存しておきます。
補足
回答ありがとうございます。 そこまでは他の方の質問を見て分かっているんですが、 具体的にプログラムをどう書き変えればいいんですか?
お礼
補足ではなくお礼です;すみません;
補足
何度もありがとうございます。 では恐らく「古いブラウザー」だったのだと思います。 お手数おかけして申し訳ありませんでした。 >あちこち(このカテゴリーにも)にたくさんあるので とのことでしたので、「ツリー cookie」で調べてみましたところ、 私の希望しているプログラムが書かれているサイトを見つけることができました。 やってみると思っていた通りの動きをしてくれましたのでほっとしました。 助言して頂きありがとうございました。