js如何判断是否在iframe中及防止网页被别站用iframe嵌套


Posted in Javascript onJanuary 11, 2017

1. js如何判断是否在iframe中

Js代码

//方式一 
if (self.frameElement && self.frameElement.tagName == "IFRAME") { 
  alert('在iframe中'); 
} 
//方式二 
if (window.frames.length != parent.frames.length) { 
  alert('在iframe中'); 
} 
//方式三 
if (self != top) { 
 alert('在iframe中'); 
}

2. 防止网页被别站用 iframe嵌套

将下面的代码加到您的页面 <head></head> 位置即可:

Js代码

<script language="javascript"> 
<!-- 
if (top.location != location) 
{ 
top.location.href = location.href; 
} 
//--> 
</script> 
//或 
<script language="javascript"> 
if(self!=top){top.location.href=self.location.href;} 
</script>

这个就能让别人无法用iframe嵌套你网站的任何页面,实现的效果是:输入盗链你网站的那个地址后会自动跳到你的网站。

不可靠的原因:

当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。

Js代码

<iframe src="你的页面地址" name="tv" marginwidth="0" marginheight="0" scrolling="No" noResize frameborder="0" id="tv" framespacing="0" width="580" height="550" VSPACE=-145 HSPACE=-385></iframe> 
<script language="javascript"> 
var location=""; 
var navigate=""; 
frames[0].location.href=""; 
</script>

2.最可靠的方法:

为了彻底防止别人用IFRAME框架嵌套调用自己的网页,如下方法是最可靠的.

这里赋值为空页面,也可赋值为你的页面的URL地址.

Js代码

<script language="javascript"> 
if(top != self){ 
 location.href = "about:blank"; 
} 
</script>

还有一个完全屏蔽被iframe的方法就是添加:

Html代码

header("X-Frame-Options: deny"); 
header("X-XSS-Protection: 0");

这个也是加载iframe是产生错误“Load denied by X-Frame-Options: http://localhost/××××.php does not permit framing.”的原因!

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
基于jQuery的前端数据通用验证库
Aug 08 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
jQuery中:focus选择器用法实例
Dec 30 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
Sep 06 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
js date 格式化
Feb 15 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
Oct 30 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 Javascript
JavaScript中的call和apply的用途以及区别
Jan 11 #Javascript
Vue数据驱动模拟实现2
Jan 11 #Javascript
jQuery实现对象转为url参数的方法
Jan 11 #Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 #Javascript
移动端界面的适配
Jan 11 #Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 #Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 #Javascript
You might like
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
简单理解Python中基于生成器的状态机
2015/04/13 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
详解python中init方法和随机数方法
2019/03/13 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
在python shell中运行python文件的实现
2019/12/21 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
建筑项目策划书
2014/01/13 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
高三教师工作总结2015
2015/07/21 职场文书
文书工作总结(范文)
2019/07/11 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript