欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js实现网页防止被iframe框架嵌套及几种location.href的区别

程序员文章站 2024-03-01 12:46:52
首先我们了解一下:window.location.href、location.href、self.location.href、parent.location.href、to...
首先我们了解一下:window.location.href、location.href、self.location.href、parent.location.href、top.location.href他们的区别与联系,简单的说:几种location.href的区别 js实现网页被iframe框架功能
"window.location.href"、"location.href"、"self.location.href"是本页面跳转
"parent.location.href"是上一层页面跳转
"top.location.href"是最外层的页面跳转

举个例子说明(如上图):
如果a,b,c,d都是普通页面,d是c的iframe,c是b的iframe,b是a的iframe,
如果d中js这样写:
"window.location.href"、"location.href":d页面跳转
"parent.location.href":c页面跳转
"top.location.href":a页面跳转

如果d页面中有form的话:
<form>: form提交后d页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后c页面跳转
<form target="_top"> : form提交后a页面跳转

关于页面刷新,d 页面中这样写:
"parent.location.reload();": c页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )
"top.location.reload();": a页面刷新

现在回头看看,js实现网页防止被iframe框架功能就很简单了。假设frame.html文件中框架了content.html文件,那么思路是这样的:在content.html中加入js检测自己本身top.location.href地址,是否为top.location.href地址。如果是则没被嵌套,如果否的话即被嵌套了,这是我们可以提示一下。

网页防止被框架方法代码:
复制代码 代码如下:

<script language="javascript">
if(top.location!==self.location){
warningtxt1 = "content页面被iframe了!";
warningtxt2 = "我们跳出iframe,直接访问content页面吧!";
alert(warningtxt1);
alert(warningtxt2);
top.location.href=self.location.href;
}
</script>