iframe详细介绍
iframe详细介绍
- iframe标签介绍
- 操作iframe
- 获取iframe中的内容
- 获取iframe中的方法
- 操作父容器
- parent属性
- top属性
- iframe获取父容器的内容
- iframe获取父容器的方法
- 加载
- iframe加载完成
- iframe父容器加载完成
- 示例
- 使用iframe的优缺点
- 优点
- 缺点
iframe标签介绍
iframe 元素会创建包含另外一个文档的内联框架(类似行内元素inline-block)。
提示:您可以把需要的文本放置在 <iframe>
和 </iframe>
之间,这样就可以应对无法理解 iframe 的浏览器。
常用属性:
属性 | 值 | 描述 |
---|---|---|
src | URL | 规定在 iframe 中显示的文档的 URL |
frameborder | 1(默认)或 0 | 规定是否显示框架周围的边框 |
scrolling | yes 或 no 或 auto(默认) | 规定是否在 iframe 中显示滚动条 |
操作iframe
获取iframe中的内容
contentDocument:
contentDocument 属性以 HTML 对象返回框架容纳的文档。可以通过所有标准的 DOM 方法来处理被返回的对象。
语法:frameObject.contentDocument
获取iframe中的方法
contentWindow:
contentWindow属性是指指定的frame或者iframe所在的window对象
语法:frameObject.contentWindow
操作父容器
parent属性
返回父窗口。iframe页面通过window.parent属性操作父页面中的元素与方法
top属性
window.top 功能:返回顶层窗口,即浏览器窗口
iframe获取父容器的内容
parent.document
iframe获取父容器的方法
parent
加载
iframe加载完成
frameObject.onload = function() {}
iframe父容器加载完成
parent.onload = function () {}
示例
index.html
<!DOCTYPE html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>测试</title><style rel="stylesheet" type="text/css">* {margin: 0;padding: 0;}</style></head><body><div id="parentNode">parentNode</div><iframe class="childContent" id="childContent" frameborder="1"></iframe><script>// 在父容器window注册方法function sayParentNode () {console.log('sayParentNode')}// 获取iframe元素,加载内容const iframe = document.querySelector('#childContent')iframe.src = './iframe.html'// 等待iframe加载完成iframe.onload = function () {// 获取iframe内容及方法console.log('childContent', iframe.contentDocument)console.log('childContentNode', iframe.contentDocument.querySelector('#iframeNode'))console.log('childWindow', iframe.contentWindow)console.log('childWindowSay', iframe.contentWindow.sayIframeNode())}</script></body>
</html>
iframe.html
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style rel="stylesheet" type="text/css">* {margin: 0;padding: 0;}</style>
</head><body><div id="iframeNode">iframeNode</div>
</body>
<script>// 在iframe所在window注册方法function sayIframeNode() {console.log('sayIframeNode')}parent.onload = function () {console.log('parentSay', parent.sayParentNode())console.log('parentDocument', parent.document)}
</script></html>
使用iframe的优缺点
优点
程序调入静态页面比较方便
缺点
1.用在首页,对搜索引擎不友好影响网站排名。
2.创建DOM相对较慢。iframe的创建比其它包括scripts和css的 DOM 元素的创建慢了 1-2 个数量级。
3.iframes 阻塞页面加载。window 的 onload 事件需要在所有 iframe 加载完毕后(包含里面的元素)才会触发。通过 JavaScript 动态设置 iframe的src属性可以避免这种阻塞情况。
4. 占用唯一的连接池。浏览器只能开少量的连接到web服务器,主页面和其中的 iframe 是共享这些连接的。这意味着 iframe 在加载资源时可能用光了所有的可用连接,从而阻塞了主页面资源的加载。一种解决办法是,在主页面上重要的元素加载完毕后,再动态设置 iframe 的 src属性。
iframe详细介绍相关推荐
- html中的content作用,meta name= content=的作用详细介绍
meta name="" content="的作用详细介绍 发布时间:2013-11-08 16:56:16 作者:佚名 我要评论 meta name=" ...
- html h1标签什么意思,什么是html h1标签?html h1标签使用方法的详细介绍
本篇文章主要为大家介绍了关于HTML h1~h6的使用介绍,介绍了关于html h1标签在网页中的两种使用方法,一个是网站首页的具体介绍,一个是文章内容页面的具体介绍,最后一点的总结,现在让我们看看这 ...
- HTML页面加载和解析流程详细介绍
浏览器加载和渲染html的顺序.如何加快HTML页面加载速度.HTML页面加载和解析流程等等,在本文将为大家详细介绍下,感兴趣的朋友不要错过 浏览器加载和渲染html的顺序 1. IE下载的顺序是从上 ...
- mysql为什么要压测_mysql集群压测的详细介绍
本篇文章给大家带来的内容是关于mysql集群压测的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. mysql压测 mysql自带就有一个叫mysqlslap的压力测试工具,通 ...
- php比较运算符案列,PHP实例:PHP比较运算符的详细介绍
<PHP实例:PHP比较运算符的详细介绍>要点: 本文介绍了PHP实例:PHP比较运算符的详细介绍,希望对您有用.如果有疑问,可以联系我们. 比拟运算符种类 PHP实战如同它们名称所暗示的 ...
- Tempdb数据库详细介绍
Tempdb数据库详细介绍 一.Tempdb简介 tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分,用来存储临时对象.可以简单理解tempdb是SQLServer的 ...
- linux路由介绍,Linux的路由表详细介绍
Linux的路由表详细介绍 一 在Linux下执行route命令[root@localhost backup]# route -nKernel IP routing tableDestination ...
- pythonexcel介绍_Python 中pandas.read_excel详细介绍
Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...
- 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...
渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...
最新文章
- 商丘网络推广中网站内部优化需要注意的要点有哪些?
- HDU 3874 Necklace (数状数组)
- python函数拟合不规则曲线_python曲线拟合
- 手把手教你把代码丢入github 中
- 单选按钮带文字_一分钟教会你用Word添加单选框和复选框
- TDengine与OpenTSDB对比测试
- 【linux】Centos 8 安装 悟空CRM-11.0
- 7-150 水仙花数 (20 分)
- [转]跨库数据表复制
- 7.3(java学习笔记)网络编程之UDP
- java中的原型模式_java中的原型模式理解
- php 压缩及解压文件,php zip文件的解压与压缩
- VBS中转换二进制数据为字符串常用办法
- 关于Layer UI表格列日期格式化及取消自动填充日期
- HBuilder升级失败,/HBuilder/plugins 被另—个程序占用,请退出占用程序或者重启计算机后重试
- 学渣笔记——Java常用基本数据类型
- 找出数组x中的最大值和该值所在的元素下标,数组元素从键盘输入。
- 代理模式,明星经纪人--Java
- 如何进行英文文献检索
- 【精品】防止表单重复提交 方法汇总
热门文章
- Maven导入com.google.common.collect jar包
- NodeMCU文档中文翻译 7 DHT温湿度传感器模块
- delphi Inc函数和Dec函数的用法
- 如何VisualSVN备份到不同Windows服务器中
- 2022年全球市场单相交流变频器总体规模、主要生产商、主要地区、产品和应用细分研究报告
- fastclick 解决移动端click事件300ms延迟
- 简单的抽卡模拟器2.0
- 苹果手机录屏软件_手机录屏哪个软件好用?
- 千人规模组织级 DevOps 演进的 9 个实践及技巧
- 张宇1000题概率论与数理统计 第八章 统计量及其分布