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 相关文章推荐
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
详解VueJs前后端分离跨域问题
May 24 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
Bootstrap 模态框(Modal)带参数传值实例
Aug 20 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
select2 ajax 设置默认值,初始值的方法
Aug 09 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
Vue+Vant 图片上传加显示的案例
Nov 03 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
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
Django 中 cookie的使用
2017/08/17 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
Python群发邮件实例代码
2014/01/03 Python
python查询mysql中文乱码问题
2014/11/09 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
升职自荐书范文
2013/11/28 职场文书
小学生家长评语大全
2014/02/10 职场文书
高中军训感想800字
2014/02/23 职场文书
工会换届选举方案
2014/05/21 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
导游词之日月潭
2019/11/05 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
MySQL创建管理KEY分区
2022/04/13 MySQL