У меня есть HTML-страница (скажем, welcome.html), которая содержит iframe для страницы, над которой я не могу контролировать (скажем, app.html). Пользователь выполняет некоторые действия с помощью приложения в iframe и нажимает кнопку «Отправить». Как только они это сделают, они попадают на новую страницу (скажем, thanks.jsp), которая загружается в iframe. Есть ли способ заставить thank.jsp загружаться в полном кадре, а не в iframe после нажатия кнопки submit? Помните, я не контролирую логику этой кнопки «Отправить» или app.html. Однако я контролирую файлы welcome.html и thanks.jsp. Если возможно, я хотел бы придерживаться HTML и / или JavaScript. Заранее спасибо.



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


Вероятно, вы захотите использовать фреймбастер с базовой целью на случай, если он не удастся.
Первый:
Еслиthanks.jsp запрашивается через почтовый запрос - перенаправление, чтобы вы представляли страницу как ответ на запрос получения.
Затем:
Включите фреймбастер JavaScript:
<script type = "text/javascript">
if (self != top) { top.location.replace(location); }
</script>
Ну наконец то:
В случае, если у пользователя не включен JavaScript, убедитесь, что он больше не остается в кадре, а затем должен:
<base target = "_top">На thanks.jsp вы можете вставить следующий JS:
// Parent window not the same as this one
if (self !=top)
{
top.location.href = self.location.href;
}
Это будет работать при условии, что у вас есть thanks.jsp на том же сервере, что и исходная страница, содержащая фрейм, из-за та же политика происхождения.
Приведенный выше код проверяет URL-адрес страницы, на которой вы находитесь, а затем адрес страницы, на которой он выполняется (thanks.jsp) - если они не совпадают, вы отправляете URL-адрес thanks.jsp. Этот метод отлично работает, когда thanks.jsp является статической страницей, но не переносит с собой постданные и т. д.