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 相关文章推荐
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
vue中使用localstorage来存储页面信息
Nov 04 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
浅谈在node.js进入文件目录的问题
May 13 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
es6中比较有用的7个技巧小结
Jul 12 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python中List.index()方法的使用教程
2015/05/20 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
python不同系统中打开方法
2020/06/23 Python
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
口腔医学技术应届生求职信
2013/11/09 职场文书
酒店员工培训方案
2014/06/02 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
献爱心标语
2014/06/21 职场文书
2015年感恩节活动总结
2015/03/24 职场文书
观看建国大业观后感
2015/06/01 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
Pytorch中的数据集划分&正则化方法
2021/05/27 Python