我在客户的网站上有一个iframe的简单测验。不幸的是,测验托管在我客户网站的不同服务器上。客户希望iframe在用户提交表单后60秒刷新(轻松完成),但每当我尝试让测验自行刷新时,浏览器会出于安全原因阻止它 - 它们位于不同的域上。
我不是要改变父窗口目的地,只是重新加载iframe本身,所以希望安全性不是问题...但我已经尝试iframe.contentWindow.history.back();
但我仍然得到了相同的安全错误:
Uncaught SecurityError:阻止具有原点的帧 “http://www.ourserver.com”访问具有原点的框架 “http://www.clientserver.com”。协议,域和端口必须 匹配。
如何让iframe自行刷新?这可能吗?或者浏览器是否认为iframe由父页面拥有,所以甚至不让我刷新它?感谢。
答案 0 :(得分:0)
您只能使用邮件发布方法进行解决方法,所有浏览器都会阻止直接操作。
在您的主页中:
var frame = document.getElementById('your-frame-id');
frame.contentWindow.postMessage("reload please, thank you", '*');
在你的(包含在主页中):
window.addEventListener('message', function(event) {
if (event.data === "reload please, thank you") {
location.reload();
}
});