перейти на именованный якорь с помощью JavaScript - PullRequest
1 голос
/ 07 апреля 2011

У меня есть программа php (codeigniter), которая отображает все готовые проекты и инжиниринговую компанию.Я могу щелкнуть страницу с подробной информацией и оттуда нажать ссылку, чтобы вернуться на страницу обзора.Чтобы не начинать снова с верхней части списка, я бы хотел перейти к проекту, с которого я работаю.Это кажется легким, но это доставляет мне проблемы.Я нашел это решение в Интернете, которое работает с Chrome, но не с Firefox и IE:

<script type="text/javascript" language="javascript">
    function moveWindow (){window.location.hash="a13";}
</script>
<body onload="moveWindow()">
.
.
.
<a name="a13"></a>

Содержимое якоря динамически генерируется PHP.Как я уже сказал, он работает только в Chrome.IE говорит что-то вроде неопределенной функции moveWindow, когда я вхожу в режим отладки.

1 Ответ

4 голосов
/ 07 апреля 2011

Вы можете прикрепить функцию к щелчку сведений, который изменит URL на currentURL # yourID, а затем изменит его на окончательный URL.Таким образом, currentURL # yourID будет сохранен в истории браузера, и если вы вернетесь назад, вы попадете на правильный якорь.

Что-то вроде (при условии, что вы используете jQuery и ваши идентификаторы находятся на <a>):

$(document).ready( function() {
    $('#yourlist a').click( function(e) {
       e.preventDefault();
       window.location = '#'+$(this).attr('id');
       window.location = this.href; // intentionally not using jQuery ;-)
    });
});

HTML-код будет выглядеть так:

<ul id="yourlist">
    <li><a href="details_page_for_item_1.html" id="a1">Item 1</a></li>
    <li><a href="details_page_for_item_2.html" id="a2">Item 2</a></li>
    <li><a href="details_page_for_item_3.html" id="a3">Item 3</a></li>
</ul>

Не проверено ...

...