欢迎光临 织晶网络官网!

  • 技术文档
  • 020-39182790
技术文档您现在的位置:首页 > 服务支持 > 技术文档

iframe标签介绍与用法

作者:织晶客服部   发布于:2023/3/15 14:20:49  点击量:  来源:织晶网络

一、什么是iframe
iframe是html中标签元素,用于在网页中内嵌另一个网页,即内嵌内联框架。iframe标签规定一个内联框架。一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。所有的主流浏览器都支持iframe标签。你可以把提示的文字放到 iframe 和 /iframe里面,这样不支持 iframe 的浏览器就会出现提示的文字。


二、iframe互相操作
1.首先明确一点,每个iframe里各自维护自己的全局window对象。
2.另外明确一点,只有同域才能进行iframe之间的读改写,跨域时,只能进行简单的路由跳转。
3.在父级使用window.frames[name]可以获取子iframe的window对象,相应的可以获取document对象,从而对子iframe进行dom操作。
4.在子iframe想要操作父元素的iframe,直接使用子元素的window.parent来获取父级元素的window对象,从而获取document来操作dom。

三、iframe之间的通信
1.发送信息:
当我们要向指定iframe发送信息时,首先要获取指定iframe的window对象,然后使用这个window对象的postMessage发送消息。
otherWindow.postMessage(data, orgin,[transfer])
data是待发送的数据
orgin是发送的地址,为‘*’表示无限制,该参数必传,否则会报错
2.接受信息:
在要接受信息的地方,我们使用window的onmessage事件来接受消息,该事件会返回一个事件对象,其中data包含了返回的数据,orgin返回发送源。
3.安全问题:当我们明确知道orgin是谁时,不要使用‘*’,当要接受信息时,先判断orgin是否是我们要接受的源,在做后续操作。

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

五、iframe 如何使用呢?
通常我们使用iframe直接在页面嵌套iframe标签指定的src就可以了。
如下:
< div id='box'>
< iframe id="iframe_page" src="b.html" data-ke-src="b.html" frameborder="0" width="100%" height="100%">< / iframe>

iframe 的常用属性:
name : 规定 iframe 的名称。
width: 规定 iframe> 的宽度。
height :规定 iframe 的高度。
src :规定在 iframe 中显示的文档的 URL。
frameborder : 规定是否显示 iframe 周围的边框。 (0为无边框,1位有边框)。
align :规定如何根据周围的元素来对齐 iframe。(left,right,top,middle,bottom)。
scrolling :规定是否在 iframe 中显示滚动条。 (yes,no,auto)

iframe默认有一个宽高,存在边界
iframe是一个行内块级元素,可以通过display修改

那如何获取iframe里面的内容呢?
var iframe = document.getElementById("iframe_page"); //获取iframe标签
var iwindow = iframe.contentWindow; //获取iframe的window对象
var idoc = iwindow.document; //获取iframe的document对象
console.log(idoc.documentElement); //获取iframe的html
console.log("body",idoc.body);
但是,这里面是获取不到里面的DOM的,可以在URL中获取(也就是引入的html文件)

六、iframe 的优缺点
优点:
重载页面时不需要重载整个页面,只需要重载页面中的一个框架页(减少数据的传输,减少网页的加载时间);
技术简单,使用方便,主要应用于不需要搜索引擎来搜索的页面;
方便开发,减少代码的重复率(比如页面的header,footer);
缺点:
会产生很多的页面,不易于管理;
多框架的页面会增加服务器的http请求;
浏览器的后退按钮无效等。


上一篇:js对表单提交数据进行验证并对广告数据进行过滤

下一篇:js中将两个以上的一维数组转成一个二维数组