
JavaScriptで下記のような折りたたみ(階層)メニューを作成しています。
<script type="text/javascript">
<!-- /* ブラウザ判別 */
var ie=document.all ? 1 : 0;
var ns6=document.getElementById&&!document.all ? 1 : 0;
var opera=window.opera ? 1 : 0;
/* 子メニューの表示・非表示切替 */
function openFolder(childObj, parentObj){
var child="";
var parent="";
var sw="../../images/blanc.gif"; /* フォルダ表示時のアイコン画像 */
var hd="../../images/blanc.gif"; /* フォルダ非表示時のアイコン画像 */
if(ie || ns6 || opera){
child=ns6 ? document.getElementById(childObj).style : document.all(childObj).style;
parent=ns6 ? document.getElementById(parentObj) : document.all(parentObj);
if (child.display=="none"){
child.display="block";
parent.src=sw;
}else{
child.display="none";
parent.src=hd;
}
}
}
//-->
</script>
<div id="open_1" style="display:none;">
<a href="01.html"><img src="images/list_01.gif"></a><br>
<a href="02.html"><img src="images/list_02.gif"></a><br>
</div>
<div id="open_2" style="display:none;">
<a href="03.html"><img src="images/list_03.gif"></a><br>
<a href="04.html"><img src="images/list_04.gif"></a><br>
</div>
<div id="open_3" style="display:none;">
<a href="04.html"><img src="images/list_03.gif"></a><br>
<a href="05.html"><img src="images/list_04.gif"></a><br>
</div>
ここで、<div id="open_1">内のリンクをクリックして01.htmlに遷移した際、01.htmlでも<div id="open_1">内の階層が表示されているようにしたいのです(下のふたつの階層についても同じです)。
過去ログなどを調べまして、
<script type="text/javascript"><!--
function keepOpen(){
document.getElementById('x').style.display = "block";
document.getElementById('y').style.display = "block";
}keepOpen();
//--></script>
を挿入すればいけそうでやってみたのですが、今度は開きっぱなしになってしまいます。二日ほど調べたのですが、よい解決策が見つかりません(また、<div>の中のソースはすでにphpのコードを組込んでいるので、できれば中の部分はいじりたくありません)。
お詳しい方、大変恐れ入りますが、どうぞご教示くださいませ。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
var url = window.location + ""
var a = document.getElementsTagName('a')
for(var i = 0;i < a.length;i++){
var href = a[i].href
if(url.indexOf(href) != -1){
childObj = a[i].parentNode.id//かな?
parentObj = a[i].parentNode.parentNode.id//かな?
break;
}
}
単純にURLから割り出すのが簡単じゃないかな。
スクリプトを書いていただいてありがとうございました。
入れてみましたが、ブラウザによって動作しない場合があるようです。
PHPでJavaScriptを出力する方向で解決することになりました。
ありがとうございました。
No.2
- 回答日時:
参考URLをありがとうございました。
PHPでJavaScriptを出力する方向で解決することになりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
指定したパスが現URLに含まれて...
-
javascriptでpostした値が取得...
-
取得した要素がインライン要素...
-
iframe内のリンクが飛ばないの...
-
javascriptテキストBOX色を元に...
-
jqueryでhrefの値を取得して代...
-
VBScript+IEのチェックボック...
-
【HP作成】クリックすると下...
-
onclickとonmouseoverを同時に...
-
javascriptのDOMについて
-
c++std::string型をTCHARに変換...
-
スライドショー(1回)が思う...
-
多階層ドロップダウンのスマホ...
-
1枚の画像をクリックすると複数...
-
外部javascriptの重複を防ぐには
-
jspでcssが読み込めない
-
Javascriptで指定した日付と時...
-
画像をランダムに表示するには
-
iframe内のリンク文字のマウス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
removeAttribute()メソッドで削...
-
IFRAMEの表示/非表示を切り替え...
-
VBAのことについて教えてくださ...
-
javascriptでpostした値が取得...
-
プルダウンメニュ 展開時にずら...
-
removeEventListenerについて
-
クリックすると隠れたテキスト...
-
プルダウンとチェックボックス...
-
指定字数以降隠す
-
自働生成される<div>タグに連番...
-
テキストボックスに入力された...
-
背景色を透明化
-
特定のものにだけスクリプトを...
-
ホームページ(デフォルトペー...
-
テキストエリア内の一部の文字...
-
隣のフレームの中のスタイルを...
-
java折りたたみタグを複数設置...
おすすめ情報