iframe中的跨框架脚本

时间:2012-05-15 07:23:48

标签: java javascript-events jspx

我有一个jsp页面。它有3个i帧。我得到了一个Cross frame脚本编写问题。我可以将一个页面从任何其他域加载到我的i帧之一。你能告诉我怎么解决这个问题。 我试过以下代码

             <style>
                html{display : none ; }
            </style>
            <script>
                if( self == top ) {
                    document.documentElement.style.display = 'block' ;
                } else {
                    top.location = self.location ;
                }


            </script>

并且我尝试了一个过滤器,它添加了标题“X-FRAME-OPTIONS”,SAMEORIGIN

两者都不起作用。

2 个答案:

答案 0 :(得分:0)

对于加载到iframe中的来自不同来源的html页面,您无法访问该页面的窗口或任何其他对象。

对于从不同来源加载到iframe的html页面之间的通信,您必须使用“postMessage”功能。详情及例子google postMessage在javascript中,你会得到很多关于它的教程。

答案 1 :(得分:0)

尝试使用此脚本,它不允许您的网页在其他网域的iframe中使用。

function bust() {
    var urlRefer = (window.location != window.parent.location) ? document.referrer: document.location;
    var envName = window.location.hostname;
    var envNameNew = new RegExp(envName);
    if (!(envNameNew.test(urlRefer))) {
        window.top.location="http://"+envName;  
    }
}
bust();