【问题标题】:Refresh iframe when hosted on different server托管在不同服务器上时刷新 iframe
【发布时间】:2016-07-05 18:22:01
【问题描述】:

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

我没有尝试更改父窗口目标,只是重新加载 iframe 本身,所以希望安全不是问题......但我已经尝试过 iframe.contentWindow.history.back(); 但我仍然遇到同样的安全错误:

Uncaught SecurityError: Blocked a frame with origin “http://www.ourserver.com”来自访问具有原点的框架 “http://www.clientserver.com”。协议、域和端口必须 匹配。

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

【问题讨论】:

    标签: javascript jquery html iframe


    【解决方案1】:

    您只能使用消息发布来解决问题,所有浏览器都有充分的理由阻止直接操作。

    在您的主页中:

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

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 2011-12-13
      相关资源
      最近更新 更多