Другой вариант, который еще не был упомянут, - это связать прослушиватели событий (используя, например, jQuery ) со ссылками, которые вас интересуют (могут быть все из них, а могут и не быть), и получитьслушатель для вызова любой используемой вами функции.
Редактировать после комментария
Например, у вас может быть этот код в вашем HTML:
<a href="example#myanchor1" class="myHash">example1</a>
<a href="example#myanchor2" class="myHash">example2</a>
<a href="example#myanchor3" class="myHash">example3</a>
Затем вы можете добавить следующий код для привязки и ответа на ссылки:
<script type="text/javascript">
$('a.myHash').click(function(e) {
e.preventDefault(); // Prevent the browser from handling the link normally, this stops the page from jumping around. Remove this line if you do want it to jump to the anchor as normal.
var linkHref = $(this).attr('href'); // Grab the URL from the link
if (linkHref.indexOf("#") != -1) { // Check that there's a # character
var hash = linkHref.substr(linkHref.indexOf("#") + 1); // Assign the hash to a variable (it will contain "myanchor1" etc
myFunctionThatDoesStuffWithTheHash(hash); // Call whatever javascript you use when the page loads and pass the hash to it
alert(hash); // Just for fun.
}
});
</script>
Обратите внимание, что я использую селектор классов jQuery , чтобы выбрать ссылки, которые я хочу отслеживать', но вы можете использовать любой селектор , какой пожелаете.
В зависимости от того, как работает ваш существующий код, вам может понадобиться либо изменить то, как / что вы передаете ему (возможно, вам потребуетсясоздайте полный URL-адрес, включая новый хеш, и передайте его через - например, http://www.example.com/example#myanchor1), или измените существующий код, чтобы принять то, что вы передаете ему от нового кода.