Неожиданное поведение window.onback в JavaScript? [закрыто]
-
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>
Я не могу объяснить, что происходит, но это должно помочь ограничить возможности взлома.