托管在不同服务器上时刷新iframe

时间:2016-07-04 17:50:28

标签: javascript jquery html iframe

我在客户的网站上有一个iframe的简单测验。不幸的是,测验托管在我客户网站的不同服务器上。客户希望iframe在用户提交表单后60秒刷新(轻松完成),但每当我尝试让测验自行刷新时,浏览器会出于安全原因阻止它 - 它们位于不同的域上。

我不是要改变父窗口目的地,只是重新加载iframe本身,所以希望安全性不是问题...但我已经尝试iframe.contentWindow.history.back();但我仍然得到了相同的安全错误:

  

Uncaught SecurityError:阻止具有原点的帧   “http://www.ourserver.com”访问具有原点的框架   “http://www.clientserver.com”。协议,域和端口必须   匹配。

如何让iframe自行刷新?这可能吗?或者浏览器是否认为iframe由父页面拥有,所以甚至不让我刷新它?感谢。

1 个答案:

答案 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();
    }
});