Итак, на моем сайте выпадающие меню в заголовке, которые ссылаются на дочерние страницы разных страниц. Как и основные кнопки ссылки на about.php
и ссылки меню при наведении курсора about.php#contacts
и т.д. ...Проблема с хеш-ссылками, работающими с ссылками на javascript
Теперь на каждой из этих страниц, что дочерние страницы, они не являются отдельными, но страницы переключаются вкл/выкл с помощью яваскрипта функции для изменения отображение значения css.
Так что если я нахожусь в индексе и нажимаю на about.php#contacts
, содержимое контактов отображается просто отлично. Однако, если я нахожусь на странице, любая ссылка с хешем, направляющая на страницу, не работает. На другие страницы это будет работать, но если хеш-ссылка указывает на текущую страницу, она не работает. В адресной строке изменяется 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>
Спасибо, что hashchange работал. Я рассмотрю один из них. – gta0004