
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を探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
createElementで作成した要素を...
-
click範囲の指定
-
createElementが一瞬で消えてし...
-
iframe内のリンクが飛ばないの...
-
removeEventListenerについて
-
初期状態でテーブルの非表示
-
1枚の画像をクリックすると複数...
-
透過pngの透明部分以外をクリッ...
-
クリックで背景変更するタグ
-
離れた場所にマウスオーバーで...
-
JS <a></a>タグ内のリンク先ア...
-
外部javascriptの重複を防ぐには
-
jQueryで特定のURLの時のみ表示
-
jQueryでネスト構造の<li>がク...
-
jspでcssが読み込めない
-
1枚の画像をクリックして複数の...
-
Webサイト作成 プログレスバー ...
-
他のPGMを呼び込むロジックにつ...
-
【html5】canvasでの文字の形の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
iframe内のリンクが飛ばないの...
-
javascriptでpostした値が取得...
-
タブで開いてさらにタブ内をア...
-
【HP作成】クリックすると下...
-
jQueryでクリックされた要素のi...
-
指定したパスが現URLに含まれて...
-
プルダウンとチェックボックス...
-
createElementで作成した要素を...
-
IFRAMEの表示/非表示を切り替え...
-
クリックで色変更後に既に変更...
-
jQueryで同じid属性が複数あっ...
-
表示・非表示のスクリプトで、...
-
removeEventListenerについて
-
removeAttribute()メソッドで削...
-
クリックするとテーブルの列の...
-
背景色を透明化
-
テキストエリア内の一部の文字...
-
バッチファイルでカウントアッ...
おすすめ情報