Как переопределить позицию запоминания браузера при загрузке новой версии страницы? - PullRequest
0 голосов
/ 12 марта 2011

У меня есть страница с именем results.aspx. Показывает список результатов поиска. У меня есть транспорт (из-за отсутствия лучшего термина) вверху и внизу каждой страницы. Один из них:

Previous   1   2   [3]   4   5   Next 

Каждый из текстовых элементов в транспорте имеет ссылку, например:

<a href="results.aspx?page=4" />

Номер страницы, конечно, зависит от предполагаемого места назначения.

Моя проблема заключается в том, что, поскольку имя корневой страницы совпадает с results.aspx, браузер всегда прокручивает на ту же позицию на вновь загруженной странице, что и на странице, с которой я только что щелкнул. Или, по крайней мере, это то, что я предполагаю, что происходит.

Я пытался создать теги типа

<a name="top">
<a id="top">

и измените мою ссылку на любую из

<a href="results.aspx?page=4#top" />
<a href="results.aspx#top?page=4" />

Безрезультатно. Я должен отметить, что это унаследованная кодовая база, поэтому в javascript могут быть неприятности, которые переопределяют поведение по умолчанию.

Есть ли очевидный способ исправить это? Если он должен работать по умолчанию, есть ли в коде что-то, что я должен искать, что я должен изменить или удалить?

- РЕДАКТИРОВАТЬ -

Вот пример сгенерированного кода, взятого из браузера:

<!-- Page Transport --> 
<ul> 
<li class="gray">first</li> 
<li class="gray">previous</li> 
<li class="current">1</li> 
<li><a href="lodging/results.aspx?page=2">2</a></li> 
<li><a href="lodging/results.aspx?page=3">3</a></li> 
<li><a href="lodging/results.aspx?page=4">4</a></li> 
<li><a href="lodging/results.aspx?page=2">next</a></li> 
<li><a href="lodging/results.aspx?page=20">last</a></li> 
</ul>

Да, они просто hrefs, и я не могу понять, почему браузер запомнил свою позицию на странице!

- РЕШЕНИЕ -

Оказалось, что первоначальный разработчик включил файл javascript, scrollsaver.min.js, в котором сознательно реализовано это поведение. Удаление этой ссылки устранило поведение.

1 Ответ

1 голос
/ 12 марта 2011

Вы уверены, что эти ссылки являются тегами <a>, а не кнопками или <a> тегами с помощью onclick. Если это простые теги <a>, то, что вы описываете, не должно произойти. Если это кнопки обратной передачи, где-то в коде позиция прокрутки поддерживается с помощью MaintainScrollPositionOnPostback . Ищите это. Как только вы можете подтвердить, что он используется, вы можете использовать Сброс положения прокрутки , чтобы преодолеть это.

...