プロが教える店舗&オフィスのセキュリティ対策術

wordpressで、htmlだけでアコーディオンメニューを作ろうとしています。
アコーディオンの中にリンクがあって、それをクリックして別のページへ移り
ブラウザの戻るボタンでアコーディオンがあるページに戻ると、
アコーディオンが閉じてしまっています。(IEのみの現象で、firefoxやsafariでは閉じません)
下記がソースです。★部分には同じものが入ります。下記のソースに何か追加してアコーディオンを開いたままにできないものでしょうか?
このサイト(http://fukafuka295.jp/hp/hp_no10.html)を見て作りました。
詳しい方ヨロシクお願いします。

<!-- 折り畳み展開ポインタ -->
<div onclick="obj=document.getElementById('★').style; obj.display=(obj.display=='none')?'block':'none';">
<a style="cursor:pointer;">ここをクリックして展開</a>
</div>
<!--// 折り畳み展開ポインタ -->

<!-- 折り畳まれ部分 -->
<div id="★" style="display:none;clear:both;">
<a href="betsunopage">別のページ</a>
</div>
<!--// 折り畳まれ部分 -->

A 回答 (1件)

こんにちは



ページを遷移する場合は、そのページに関する情報はキャンセルされるのが通常です。
(戻るボタンの場合は、ある部分に関しては保持しているブラウザもあるようです)
それなので、状態を記憶しておきたい場合は、どこかにその状態を記録(保存)しておく必要があります。

このような場合に、以前、よく用いられていたのはクッキーと言われる記録場所です。
最近では、Web Strage と呼ばれる記録場所も提供されているので、こちらを利用することも可能でしょう。
記録する内容は、メニューが「閉じている/開いている」といった状態で、複数項目があれば、項目数だけ開/閉の状態を記録しておけばよいことになります。


実際の仕組みとしては、
1)ページ読み込み時に記録を確認して、記録があればその状態にセットする。
 (なければ、なにもしない)
2)メニューの状態が変化したら(またはページを離れる際に)記録を更新する。
という処理の両方ができるようにしておけば、ご質問の内容は実現できるはずです。
ただし、このような処理を実行するにはjavascript等のプログラムが必要になります。
一方で、ご提示のメニューの仕組みにもjavascritが使われていますので、javascriptを利用すること自体には問題はないものと推測します。

具体的な方法は、「javascript cookie」や「javascript webstrage」などをキーに検索すると、利用方法の説明や例がいろいろと見つかることと思います。
あるいは、内容的にご質問と近いものを探したければ「アコーディオン 状態を保持」などで検索すれば、機能的にはほぼ同様のものがいろいろ見つかると思います。(具体的な実現方法は様々ですが…)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!