iframe

iframe
1、什么是iframe
用于在页面内显示页面, 使用其会创建包含另外一个文档的内联框架(即行内框架)

2、常用属性 width 定义iframe的宽度 height 定义iframe的高度 name 规定iframe的名称 frameborder 规定是否显示边框(0不显示 1显示) scrolling 规定是否在iframe中显示滚动条(yes, no, auto) src 设置iframe的地址 srcdoc 用来替换iframe中html, body里的内容(IE不支持) sandbox 对iframe进行内容限制  allow-forms  allow-same-origin  allow-scripts  allow-top-navigation  ...  ... 3、获取iframe中的内容 获取iframe  var iframe = document.getElementById("iframe1") 获取iframe的window对象  // 方法1  var iwindow = iframe.contentWindow  // 方法2  var iwindow = window.frames['name'] 获取iframe的document对象  // iframe.contentDocument  var idoc = iwindow.document 4、在iframe中获取父级内容 02.jpg 获取上一级 window 对象( iframe 可以有多层使用)  window.parent 获取最顶级容器的 window 对象,即打开页面时的文档  window.top 返回自身 window 对象  window.self 5、自适应iframe(广告嵌入) 广告通常与原文无关, 如果直接在某个div下嵌套, 会造成网页布局的混乱, 而且还需要引入额外的css和js文件, 极大的降低了网页的安全性, 而这些弊端可以使用iframe来进行规避 可以将iframe理解为一个沙盒, 里面的内容能够被top window完全控制, 而且网页的css样式不会侵入iframe里的样式  // 去掉滚动条   // 设置iframe的高为body的高  var iframe = document.getElementById("iframe1")  var iwindow = iframe.contentWindow  var idoc = iwindow.document  iframe.height = idoc.body.offsetHeight  allowtransparency 是否允许iframe设置为透明 默认为false  allowfullscreen 是否允许iframe全屏 6、iframe的安全性 6.1 防嵌套网页 iframe 享有 click 优先权,当有人在伪造的主页中进行点击的话,如果点在 iframe 上,则会默认是在操作 iframe 的页面。所以,钓鱼网站就是使用这个技术,通过诱导用户进行点击。为了防止网站被钓鱼,可以使用 window.top 来防止你的网页被 iframe,即限定你的网页不能被嵌套在任何网页内  if(window != window.top){  window.top.location.href = correctURL;  } 6.2 X-Frame-Options X-Frame-Options 是一个相应头,主要是描述服务器的网页资源的 iframe 权限  有三个选项:  1、DENY 当前页面不能被嵌套在iframe里,即便是相同域名的页面中嵌套也不允许,也不允许网页中有嵌套iframe  2、SAMEORIGIN iframe 页面的地址只能为同源域名下的页面  3、ALLOW-FROM 可以在指定的 origin url 的 iframe 中加载  X-Frame-Options: DENY // 拒绝任何iframe的嵌套请求  X-Frame-Options: SAMEORIGIN // 只允许同源请求,例如网页为 foo.com/123.php,則 foo.com 底下的所有网页可以嵌入此网页,但是 foo.com 以外的网页不能嵌入  X-Frame-Options: ALLOW-FROM // http://s3131212.com 只允许指定网页的iframe请求,不过兼容性较差 X-Frame-Options 其实就是将前端 js 对 iframe 的把控交给服务器来进行处理  //js  if(window != window.top){  window.top.location.href = window.location.href;  }  //等价于  X-Frame-Options: DENY  //js  if (top.location.hostname != window.location.hostname) {      top.location.href =window.location.href;  }  //等价于  X-Frame-Options: SAMEORIGIN Content Security Policy,同样也可以对 iframe 进行限制 6.3 sandbox sandbox 就是用来给指定 iframe 设置一个沙盒模型限制 iframe 的更多权限 sandbox 是 h5 的一个新属性,IE10+支持 启用方式就是使用 sandbox 属性   /*  这样会对iframe页面进行一系列的限制  1、script 脚本不能执行  2、不能发送 ajax 请求  3、不能使用本地存储,即 localStorage,cookie 等  4、不能创建新的弹窗和 window  5、不能发送表单  6、不能加载额外插件比如 flash 等  */ 常用配置项  1、allow-forms 允许进行表单提交  2、allow-scripts 允许执行脚本  3、allow-same-origin 允许同域请求  4、allow-top-navigation 允许iframe能够主导window.top进行页面跳转  5、allow-popups 允许iframe中弹出新窗口, 比如window.open, target='_blank'  6、allow-pointer-lock 在iframe中可以锁定鼠标 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieChan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值