当前位置: 首页 > news >正文

前端开发中经常提到的iframe、DOM是什么?

iframe 是什么?

iframe(Inline Frame,内联框架)是 HTML 中的一个标签,用于在当前网页中嵌入另一个独立的网页。它相当于在页面中开辟一个 “小窗口”,这个窗口可以加载并显示其他 URL 的内容(如另一个网页、文档等)。

特点

  • 嵌入的内容与父页面是相对独立的,拥有自己的 documentwindow 对象和 DOM 结构。
  • 父页面和 iframe 中的页面可以通过特定 API 进行通信(如 postMessage),但受浏览器同源策略限制(不同域名下的页面通信需要额外配置)。

简单示例

<!-- 父页面中嵌入百度首页 -->
<iframe src="https://www.baidu.com" width="800" height="600" title="百度首页"
></iframe>

DOM 是什么?

DOM(Document Object Model,文档对象模型)是浏览器对 HTML/XML 文档的结构化表示方式,它将文档中的元素(如标签、文本、属性等)转换为一个树形结构的 “对象”,让编程语言(如 JavaScript)可以访问和操作这些元素。

核心概念

  • 树形结构:DOM 以 “节点”(Node)为基本单位,整个文档是一个 “文档节点”(document),根节点是 <html>,下面包含 <head><body> 等子节点,形成层级关系(类似文件夹的目录结构)。
  • 可操作性:通过 JavaScript 可以对 DOM 进行增删改查,例如:
    • 查找元素(document.getElementById()
    • 修改内容(element.textContent
    • 改变样式(element.style.color
    • 添加 / 删除节点(document.createElement()parent.removeChild()

DOM 树简化示例

document(文档节点)
└── html(元素节点)├── head(元素节点)│   └── title(元素节点)│       └── "页面标题"(文本节点)└── body(元素节点)└── p(元素节点)└── "Hello World"(文本节点)

两者的关系

当页面中包含 iframe 时:

  • 父页面有自己的 DOM 树
  • iframe 中加载的页面也有独立的 DOM 树
  • 父页面可以通过 iframe 元素的 contentDocument 或 contentWindow.document 属性访问 iframe 内部的 DOM(需满足同源策略),例如:

    javascript

    // 访问 iframe 中的 DOM
    const iframeDom = document.querySelector('iframe').contentDocument;
    const iframeTitle = iframeDom.title; // 获取 iframe 页面的标题
    

简单说,iframe 是嵌入外部页面的容器,而 DOM 是页面内容的结构化模型,两者结合可实现复杂的页面嵌套和交互。

http://www.dtcms.com/a/363860.html

相关文章:

  • 【ComfyUI】SDXL Turbo一步完成高速高效的图像生成
  • Linux - 进程切换
  • 前端sdk相关技术汇总
  • ZabbixWatch运维监控大屏
  • spring boot 整合AI教程
  • vscode无法复制terminal信息
  • 【论文阅读】Neuro-Symbolic Integration Brings Causal and Reliable Reasoning Proofs
  • 进程优先级(Process Priority)
  • Android的USB通信 (AOA Android开放配件协议)
  • 深度优先 一直往一个方向走,可用递归或者栈实现
  • 电子电子技术知识------MOSFET管
  • 【Kubernetes】知识点2
  • 深入解析Linux进程概念与操作系统核心
  • 嵌入式系统与51单片机全解析
  • 3.ImGui-窗体
  • 大模型推理加速深度对比:vLLM vs TensorRT-LLM vs ONNX Runtime,谁是生产环境最优解?
  • 【智能体开发】怎样提升AI智能体的运行速度?
  • 重新审视信任基石:公网IP证书对网络安全生态的影响
  • 多态——面向对象编程的 “灵活密码”
  • p049基于Flask的医疗预约与诊断系统
  • Linux 安装docker-compose安装方法(安装docker compose安装)
  • Android Activity 任务栈详解
  • 一种简单而有效的融合时空特征嵌入的城区多变量长序列风速预测模型
  • 基于Springboot和Vue的前后端分离项目
  • MD5加密算法详解与实现
  • Python-Flask企业网页平台深度Q网络DQN强化学习推荐系统设计与实现:结合用户行为动态优化推荐策略
  • Dockerfile 自动化构建容器镜像
  • OpenStack:典型的面向服务架构(Service-Oriented Architecture, SOA)
  • Java Bitmap 去重:原理、代码实现与应用
  • 广东省省考备考(第九十二天9.2)——言语(刷题巩固第一节课)