dポイントプレゼントキャンペーン実施中!

お世話になります。javascriptに関してはまだまだ素人ですが、よろしくおねがいいたします。

http://www.koikikukan.com/archives/cat_149.php

のような折りたたみメニューがあるページに、
別ページから、その折りたたみメニュー部分に
アンカーで飛ばす方法でリンクをつけようと考えています。

通常、折りたたみメニューはページを開いた時に閉じているのですが、
このリンクで飛んだ時のみ、ぱっと見でどこにとんだか
分かるようにするため、アンカー部分の折りたたみメニューが
開いた状態にしたいです。

しかし、どのように指定すればいいか分かりません。。
リンクにOnClickを付けて試してみたのですが、うまくいきませんでした。

なお、折りたたみ部分は複数あり、リンクでとんだアンカー部分の
説明のみが開くようにしたいです。
なにかよいアドバイスがありましたら、お願いいたします。

>別ページリンク指定部分
<a href="/●●/#1">折りたたみ部分へのリンク</a><br>

>折りたたみメニュー部分
<a name="1"></a> ←※アンカーで飛ぶ
<a href="#" onClick="javascript:show_hide('q1'); return false;"
onkeypress="javascript:show_hide('q1'); return false;">
折りたたみタイトル部分(※通常、ここを押すと折りたたみメニューが開く)</a><br>
<div id="q1" class="qa">
折りたたみ部分
</div>

>折りたたみがあるページでのheadスクリプト部分
(折りたたみが関わっていると思われる部分)

<script type="text/javascript">
<!--
function show_hide(tid) {
if(navigator.appName.charAt(0)=='M'){
ids = tid.split(',');
for (id in ids) {
disp = document.all(ids[id]).style.display;
if(disp == "none") {
document.all(ids[id]).style.display = "block";
} else {
document.all(ids[id]).style.display = "none";
}
}
}
}
function show(tid) {
if(navigator.appName.charAt(0)=='M'){
ids = tid.split(',');
for (id in ids) {
disp = document.all(ids[id]).style.display;
document.all(ids[id]).style.display = "block";
}
}
}
function hide(tid) {
if(navigator.appName.charAt(0)=='M'){
ids = tid.split(',');
for (id in ids) {
disp = document.all(ids[id]).style.display;
document.all(ids[id]).style.display = "none";
}
}
}
function prechange(){
if(navigator.appName.charAt(0)=='M'){
show('allpreset');
hide('q1')
}
loc = top.location.hash
if (loc != ''){
location.hash = top.location.hash;
}
}
//-->
</script>


※折りたたみページに関しては、前任者が作ったページの為、javascript等私自身しっかり理解できてないところもあります。

A 回答 (1件)

こんな感じでどうでしょう?



window.onload = function() {
if( location.hash ) {
var anchor = location.hash.substr( 1 );
var target = 'q' + anchor;
if( document.getElementById( target ) ) {
show( target );
}
};
}
    • good
    • 0

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