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 无符号右移运算符
Apr 17 Javascript
javascript 写类方式之九
Jul 05 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
Feb 27 Javascript
jQuery拖动图片删除示例
May 10 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
Jul 08 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
js 获取input点选按钮的值的方法
Apr 14 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
js实现的tab标签切换效果代码分享
Aug 25 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
vue+springboot实现项目的CORS跨域请求
Sep 05 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 七大优势分析
2009/06/23 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
js资料toString 方法
2007/03/13 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
Js获取事件对象代码
2010/08/05 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
Python作用域用法实例详解
2016/03/15 Python
Python中模块string.py详解
2017/03/12 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python range与enumerate函数区别解析
2020/02/28 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
参观考察邀请函范文
2014/01/29 职场文书
模范教师事迹材料
2014/12/16 职场文书
旅行社计调工作总结
2015/08/12 职场文书
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js