У меня есть 2 простые html-страницы: родительская и дочерняя. Родитель хранит дочерний элемент внутри iframe
.
Parent.html:
<html>
<head></head>
<body>
<input type="text" id="text" />
<input type="button" value="change hash" onclick="javascript:changeHash()" />
<iframe src="Child.html"></iframe>
<script type="text/javascript">
function changeHash () {
window.location.hash = document.getElementById('text').value;
}
</script>
</body>
</html>
И Child.html:
<html>
<head></head>
<body>
<input type="button" value="go back" onclick="javascript:goBack()" />
<script type="text/javascript">
function goBack () {
this.history.back();
}
</script>
</body>
</html>
Я использую кнопку change hash, чтобы добавить несколько хэшей в историю. И когда я нажимаю кнопку назад внутри iframe
- меняется хэш Родительской страницы. И кажется, что это поведение спецификация.
Итак, вопрос: можно ли предотвратить распространение возврата из iframe на его родительскую страницу? Поэтому я хотел бы, чтобы iframe не менял историю/хеш родителя.
Примечание. такое же поведение и для функции go
(на самом деле go(-1)
совпадает с back()
).
hashchange
подписку на событие, и именно так осуществляется навигация. Таким образом, приложение вернет пользователя обратно. - person Kiril   schedule 03.08.2014history navigation
самостоятельно (например, используя localStorage) и измените свою функциюgoBack
, чтобы она не зависела отwindow.history
. - person php-dev   schedule 05.08.2014