0

我有一个jsp页面。它有 3 个 i 帧。我遇到了一个跨框架脚本问题。我可以将任何其他域的页面加载到我的 i-frame 中。你能告诉我如何克服这个问题吗?我试过以下代码:

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


            </script>

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

两者都不起作用。

4

2 回答 2

0

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

为了在从不同来源加载到 iframe 的 html 页面之间进行通信,您必须使用“postMessage”功能。有关 javascript 中的 google postMessage 的详细信息和示例,您将获得大量的教程。

于 2012-05-22T06:20:46.797 回答
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();
于 2014-09-18T18:18:00.950 回答