我有一个greasemonkey 脚本,它打开一个包含来自不同子域的表单作为父页面的iframe。
我想在表单提交后 iframe 刷新时刷新父页面
当 iframe 刷新时,我可以执行一个函数,但我无法让该函数影响父文档。
我知道这是由于浏览器安全模型造成的,并且我一直在阅读有关使用 postMessage 在两个窗口之间进行通信的信息,但我似乎无法弄清楚如何使用它向父级发送重新加载调用。
关于如何做到这一点的任何建议都会非常有帮助
谢谢
请您参考如下方法:
用:
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 的来源。 (您可以跳过来源验证,只需非常小心您对获得的数据所做的操作)。