#javascript #html #google-chrome #iframe #html5-history
#javascript #HTML #google-chrome #iframe #html5-история
Вопрос:
У меня есть страница (www.example.com ), который показывает междоменный iframe (www.another-example.com ) в модальном окне. Пользователь взаимодействует с сайтом в iframe с помощью нескольких перенаправлений. Каждое перенаправление внутри iframe добавляет записи в историю сеансов браузера. Нажатие кнопки «Назад» вызывает навигацию внутри iframe. Если мы удалим iframe из документа, некоторые браузеры (ie11, Firefox) очистят историю сеанса от записей, созданных этим iframe, но chrome оставит эти дополнительные записи, и если пользователь нажмет кнопку «Назад», ничего не произойдет. Это ошибка? Я создал демонстрационную версию для этой проблемы:
HTML
<h1>iframe test</h1>
<div>history length <span id="historyLength"></span></div>
<div>
<button id="deleteButton">remove iframe</button>
</div>
<iframe src="https://www.wikipedia.org/" frameborder="0" height="500" width="500">
iframe
</iframe>
js
const button = document.getElementById('deleteButton');
const historyLength = document.getElementById('historyLength');
button.addEventListener('click', () => {
const iframe = document.querySelector('iframe');
document.body.removeChild(iframe);
})
setInterval(() => {
historyLength.innerText = window.history.length;
}, 500);
https://jsfiddle.net/xibo/L1oga9bq/2/
Щелкните по некоторым ссылкам внутри iframe и удалите его.