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

前端技术 2023/09/02 .NET
首先我们了解一下: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>

本文地址:https://www.stayed.cn/item/5797

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。