したがって、私のサイトのヘッダーには、さまざまなページの子ページにリンクするドロップダウン メニューがあります。メインボタンのリンクabout.php
やホバーメニューのリンクabout.php#contacts
など...
子ページであるこれらの各ページでは、個別のページではなく、javascript 関数を使用してオン/オフを切り替えて表示 css 値を変更します。
したがって、インデックスにいるときに をクリックするabout.php#contacts
と、連絡先の内容が問題なく表示されます。ただし、私が about ページにいる場合、about ページへのハッシュを含むリンクは機能しません。他のページでは機能しますが、ハッシュ リンクが現在のページを指している場合は機能しません。アドレスバーで URL が変更されますが、新しいコンテンツを表示するには、ページまたはスクリプトを強制的にリロードする必要があると推測しています。
これが私が使用している関連コードです。私がやろうとしていることを達成するためのより良い方法はありますか?
//Drop down
<ul><li><a href="about.php">About Us</a>
<ul><li><a href="about.php#profile">contacts</a></li>
//More..
</ul></li></ul>
//Menu on the page
<ul>
<li><a href="javascript:showlayer('contacts');"><span>Contacts</span></a></li>
//More
</ul>
//Javascript code that handles everything
<script language="javascript">
var hash = window.location.hash;
var selectedDiv = hash.split('#')[1];
if(selectedDiv != null)
{
showlayer(selectedDiv);
}
function showlayer(name){
document.getElementById("contacts").style.display = "none";
//More
document.getElementById(name).style.display = "block";
}
</script>