У меня в основном есть страница, которая показывает экран «обработки», который был загружен в браузер. Позже мне нужно перенаправить эту страницу, в настоящее время мы используем мета-обновление, и это нормально работает.
С новой платежной системой, которая включает 3D Secure, мы потенциально можем попасть в iframe, который будет направлен обратно на наш сайт от третьей стороны.
Мне нужно иметь возможность перенаправить с этой страницы, используя javascript или мета-обновление, и выйти из iframe, если он существует.
Ваше здоровье!
(Я раньше отказывался от iframe, но не могу найти свой старый код, а поиск в Google был бесполезен, подумал, что это идеальное время, чтобы попробовать Stackoverflow out!)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поэтому я добавил на свои перенаправленные страницы следующее. К счастью, на них ничего не опубликовано, поэтому их можно просто перенаправить. Также можно использовать javascript, поскольку он необходим для перехода к этой точке на сайте.
<script type = "text/javascript" language = "javascript">
if (top.frames.length>0)
setTimeout("top.location = window.location;",100);
</script>
Вы можете потерять атрибут языка, он устарел.
Спасибо, ребята, все хорошие моменты. Как вы говорите, перенаправление действительно не нужно.
Я делаю что-то подобное, чтобы сохранить старый сайт внутри набора фреймов:
<SCRIPT TYPE = "text/JavaScript">
if (window == top){top.location.replace("/foo.html");}
</SCRIPT>
Чтобы выйти из iframe, просто измените == на! =
Я вижу, что в вашем примере вы используете setTimeout. Требуется ли ожидание выхода из iframe или вы бы предпочли, чтобы это произошло немедленно?
если вы используете javascript:
parent.document.location = "http://www.google.com"
и если вы используете html:
<a href = "http://www.google.com" target=_top >Google</a>
И ваша задержка составляет всего 1/10 секунды. Практически неотличим от конечного пользователя при мгновенном перенаправлении.