Iframe

179 阅读2分钟

iframe简介

iframe 是html元素,用于在网页中内嵌另一个网页

iframe默认有一个宽高,存在边界

iframe是一个行内块级元素,可以通过display修改

虽然iframe现在不推荐大量使用,但是某些时候迫不得已,比如。。。

iframe的优点隔离上下文

缺点影响网页速度 不利于SEO

iframe元素属性

src:指定内联网页的地址

frameborder:iframe默认有个边界,可以设置frameborder为0清除边界

width,height:控制iframe的宽高

name:框架的名称

scrolling: 是否滚动,yes,no,auto

iframe互相操作

在父级使用window.frames[name]可以获取子iframe的window对象,相应的可以获取document对象,从而对子iframe进行dom操作

在子iframe想要操作父元素的iframe,在子级window.parent来获取父级元素的window对象,从而获取document来操作dom。

window.parent.document.getElementById('xxx')

iframe之间的通信:

window.postMessage(data, origin)

data:待发送的数据

origin:是发送的地址,为‘*’表示无限制,该参数必传,否则会报错

接收信息:

window.addEventListener("message", function(event) {   
    console.log(event.data)
}}, false);

iframe强制刷新

document.getElementById(iframe的id).contentWindow.location.reload(true)
document.getElementById(iframe的id).src=src

注意事项

获取子元素的document时要确保子元素所有dom元素已经挂在完毕,因此在原生的写法时,必须写在window的onload事件中。

iframe的优点: 

  • iframe能够原封不动的把嵌入的网页展现出来。 
  • 如果有多个网页引用iframe,那么你只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷。 
  •  网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的可重用。 
  •  如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由iframe来解决。 

iframe的缺点: 

  • iframe框架结构有时会让人感到迷惑,如果框架个数多的话,可能会出现上下、左右滚动条,会分散访问者的注意力,用户体验度差。 
  • 代码复杂,无法被一些搜索引擎索引到,这一点很关键,现在的搜索引擎爬虫还不能很好的处理iframe中的内容,所以使用iframe会不利于搜索引擎优化。
  • 很多的移动设备(PDA 手机)无法完全显示框架,设备兼容性差。
  • iframe框架页面会增加服务器的http请求,对于大型网站是不可取的