Неожиданное поведение window.onback в JavaScript? [закрыто]

StackOverflow https://stackoverflow.com/questions/243887

  •  04-07-2019
  •  | 
  •  

Вопрос

Я использую window.onback = history.forward (); чтобы пользователи не могли повторно отправлять данные. Я знаю, что это хак, и мне это тоже не нравится, но вопрос не в этом. Проблема в том, что код не позволяет другим страницам возвращаться на страницу с кодом. Позвольте мне уточнить.

PageA.aspx содержит код JavaScript. Пользователь отправляет PageA, нажимает Back, и ничего не происходит. Это хорошо. Теперь пользователь нажимает ссылку на страницу PageB.aspx, в которой нет кода. Когда пользователь нажимает кнопку «Назад», что должно привести его к PageA.aspx, это не так. Он демонстрирует такое же поведение, как если бы у PageB был JavaScript-код без возврата.

Вот как я реализовал это в PageA.aspx:

<script type="text/javascript">
window.onback = history.forward();
</script>

Я подтвердил, что этот код находится только в PageA.aspx, а не в master, include или чем-либо еще. Это приложение ASP.NET 2.0, работающее в SharePoint 2007. Браузер IE7.

Есть идеи?

Это было полезно?

Решение

У меня нет времени (или SharePoint07) для воспроизведения среды и сценария, но что если вы поместите тест местоположения в JavaScript?

Примерно так:

<script type="text/javascript">
if (window.location.indexOf("PageA.aspx", 0) > 0)
{
   window.onback = history.forward();
}
</script>

Я не могу объяснить, что происходит, но это должно помочь ограничить возможности взлома.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top