2009-07-09 5 views
1

ページの読み込み時に特定のdivを非表示(表示なし)にするスクリプトがあります。 Divの内容は本の説明を表し、リスト全体は何らかの参考文献です。すべてのdivが外部ページからのアンカーを参照して非表示のdivを展開する

<ul> 
<li><div class="hidden" id="div1"></li> 
<li><div class="hidden" id="div1"></li> 
... 
</ul> 

ID、例えば、「DIV1」、「DIV2」などがあり、別のページには、すべて、このようなdiv要素へのアンカーリンクで構成され、メニュー、とあります。

<ul> 
<li><a href="bibl.html#div1"></li> 
<li><a href="bibl.html#div2"></li> 
... 
</ul> 

別のページのリンクをクリックすると、非表示のdivが自動拡張されます。私はいくつかのwindow.location.hrefを試してみましたが、役に立たないのです。私のJSはまだ弱いです。論理を理解しているので、現在のURLをとり、 "#"をチェックして、id属性の右側にある要素を検索してください。 。おかげでたくさんの種類の人々)

答えて

6

あなたはターゲットページにこのような何かを行うことができます。

window.onload = function() { 
    var hash = window.location.hash; // would be "#div1" or something 
    if(hash != "") { 
     var id = hash.substr(1); // get rid of # 
     document.getElementById(id).style.display = 'block'; 
    } 
}; 

基本的に、あなたは、ウィンドウのhrefは、それに接続されているハッシュを持っているかどうか、ページの読み込みに確認してください。表示されている場合は、<div>が見つかり、スタイル表示をブロックに変更します。

+0

あります。今幸せです?あなたは1つを持っています:) – Sampson

+0

いいえ、私は幸せではありません。私はPHPの質問のために戦場にいます、私はそれが臭いことができる金に近いSOOOです! :) –

0

window.location.hashを使用すると、ハッシュ値を確認できます。 そこからgetElementById(hashValue)を見ることができます。

0

ありがとうございました!これを追加できるとわかりました

location.href = '#' + id; 

また、参照されたdivの位置にページがスクロールされています。

+0

自動的に行うべきではありませんか? –

関連する問題