刷新位于不同域中的iframe

时间:2013-12-09 09:53:38

标签: javascript html jsp iframe

我有一个名为main.jsp的网页,位于网域domain1中,并且它有一个加载domain2内容的iframe。基本上main.jsp是常见内容,在iframe中我们从部署在不同服务器上的其他Web应用程序加载内容。

我的问题是我想自动刷新iframe中的内容(比如说5秒)。我先试过这段代码:

<meta http-equiv="refresh" content="5;url=<s:url includeParams="all" />" />

Err: Blocked a frame with origin "http://localhost:8080" from accessing a cross-origin frame

我试过这段代码:

<script type="text/javascript">
   window.setTimeout(function(){ window.location.reload() }, 15000);
</script>

这也给了我同样的错误。任何人都可以指导我如何实现这一目标吗?

注意: 我添加了此代码以摆脱跨域问题:

<script type="text/javascript">
 document.domain = window.location.hostname.replace('www.', '');
</script>

1 个答案:

答案 0 :(得分:0)

尝试动态添加

   function addRefresh(){
       var meta = document.createElement('meta');
       meta.setAttribute("http-equiv", "refresh");
       meta.setAttribute("content", "5");
       document.getElementsByTagName('head')[0].appendChild(meta);
    }

    if(location.origin === 'domain1.com'){
      addRefresh();
    }