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 相关文章推荐
JS获取农历日期具体实例
Nov 14 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
Sep 01 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
Apr 13 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
vue axios用法教程详解
Jul 23 Javascript
js 数组详细操作方法及解析合集
Jun 01 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
JavaScript惰性求值的一种实现方法示例
Jan 11 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
JS写滑稽笑脸运动效果
May 28 Javascript
Openlayers实现地图的基本操作
Sep 28 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实现递归循环每一个目录
2010/08/08 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
详解javascript高级定时器
2015/12/31 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
react-router中的属性详解
2017/06/01 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
JS轮播图的实现方法2
2020/08/25 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
介绍Python的@property装饰器的用法
2015/04/28 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
python Flask实现restful api service
2017/12/04 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python浪漫表白源码
2019/04/05 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
音乐教学反思
2014/02/02 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS