Kozack
@Kozack
Thinking about a11y

Как получить информацию из фрейма?

Имеется страница
<div id="container">
	<iframe name="first"></iframe>
	<iframe name="second"></iframe>
</div>


При клике на ссылку в фрейме нужно изменить адресную строку браузера.

Например:
Изначально загружается страница
<!-- location.href = https://exemple.com/oldpage -->
<div id="container">
	<iframe name="first">
		<html>
		<!-- some code -->
		</html>
	</iframe>
	<iframe name="second">
		<html>
		<body>
			<a href="https://exemple.com/newpage">link</a>
		</body>
		</html>
	</iframe>
</div>


При клике на ссылку фрейм перезагружается и отображает новое содержимое. Нужно после перезагрузки фрейма изменить значение в адресной строке браузера.
window.history.replaceState
  • Вопрос задан
  • 3724 просмотра
Пригласить эксперта
Ответы на вопрос 5
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Если фрейм чужого сайта, то в большинстве случаев никак.
Ответ написан
alexdevid
@alexdevid
web-developer
есть postMessage еще
Ответ написан
Комментировать
На сколько я знаю, так сделать не получится, поскольку из iframe нет доступа к основной странице посредством JS.
Ответ написан
pavel_salauyou
@pavel_salauyou
Symfony2 & Angular разработчик
на jquery $( "#frameDemo" ).contents().find( "a" ).on('click', function() {// ...});
Ответ написан
Нужно цеплять событие в самом ифрейме, отлавливать переход, отменять действие по умолчанию, менять у родителя адрес после чего эмулировать действие по умолчанию (переход по ссылке).

Другой вопрос - зачем? Фреймы уже старый век.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы