Заставить iframe загружать полный кадр

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
3 920
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вероятно, вы захотите использовать фреймбастер с базовой целью на случай, если он не удастся.

Первый:

Если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 является статической страницей, но не переносит с собой постданные и т. д.

Другие вопросы по теме