Как обновить страницу, на которой загружается iFrame после получения ответа - PullRequest
2 голосов
/ 11 июня 2019

У меня есть страница C # с именем default.aspx, откуда я открываю iFrame.как только я получу ответ, я установлю значение в моем сеансе.Но из-за отсутствия обновления страницы мне не удалось получить значение, отображаемое на странице, и скрыть iframe.

Я использовал много возможных функций Js:

window.parent.location = document.referrer location.top.reload

Я ожидал обновить свою страницу, как только получу ответ от Iframe

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

просто подумайте ... разве вы не можете использовать ajax для извлечения значения и обновления только определенного тега div ..

, если вы действительно хотите обновить страницу ... вы можете попробовать что-то вроде документа.location.reload (правда)

0 голосов
/ 11 июня 2019

Вы можете использовать window.postMessage для связи с родителем iframe.

В вашем фрейме:

window.parent.postMessage("loaded");

Внутри вашего родителя aspx:

window.addEventListener("loaded", receiveMessage, false);

function receiveMessage(event) {
   // do reload
   window.location.reload();
}

Подробнее об этом API можно прочитать здесь: MDN .

TL; DR:

Метод window.postMessage () безопасно включает перекрестное-оригинальная связь между объектами Window;например, между страницей и всплывающим всплывающим окном или между страницей и встроенным в нее iframe.

Как правило, сценариям на разных страницах разрешен доступ друг к другу тогда и только тогда, когда ониисходят из общего ресурса с тем же протоколом, номером порта и хостом (также известным как «политика одного источника»).window.postMessage () предоставляет управляемый механизм для безопасного обхода этого ограничения (при правильном использовании).

В общем, одно окно может получить ссылку на другое (например, через targetWindow = window.opener), а затем отправитьMessageEvent для него с targetWindow.postMessage ().Получающее окно тогда свободно обрабатывать это событие по мере необходимости.Аргументы, передаваемые в window.postMessage () (т. Е. «Сообщение»), открываются принимающему окну через объект события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...