У меня есть greasemonkey script, который открывает iframe, содержащий форму из другого поддомена в качестве родительской.
Я хочу обновить родительскую страницу, когда iframe обновится после отправки формы
Я нахожусь в той точке, где я могу выполнить функцию, когда iframe обновляется, но я не могу заставить эту функцию влиять на родительский документ.
Я понимаю, что это связано с моделями безопасности браузера, и я читал об использовании postMessage для связи между двумя окнами, но я не могу понять, как отправить вызов перезагрузки родительскому устройству.
Любые советы о том, как это сделать, будут очень полезны
спасибо
Использование postmessage для обновления родительского документа iframe
Ответ 1
Использование:
window.parent.postMessage('Hello Parent Frame!', '*');
Обратите внимание, что "*" указывает "любое происхождение". Вы должны заменить это целевым источником, если это возможно.
В вашем родительском фрейме вам нужно:
window.addEventListener('message', receiveMessage, false);
function receiveMessage(evt)
{
if (evt.origin === 'http://my.iframe.org')
{
alert("got message: "+evt.data);
}
}
Замените "my.iframe.org" на происхождение вашего iFrame. (Вы можете пропустить проверку происхождения, просто будьте очень осторожны, что вы делаете с данными, которые вы получаете).