我有一个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
两者都不起作用。
答案 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();