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

JavaScript中的BOM,DOM和事件

BOM(浏览器对象模型)

BOM 是浏览器提供的操作浏览器窗口和功能的对象模型,没有统一标准,但各浏览器实现基本一致。

window:BOM 的核心,代表浏览器窗口,是全局对象
document:指向 DOM 树的根节点(同时属于 DOM 和 BOM)
location:操作 URL 相关信息
history:操作浏览器历史记录
navigator:获取浏览器相关信息
screen:获取屏幕相关信息

// 弹出对话框
window.alert("提示信息");
window.confirm("确认操作?");// 页面跳转
window.location.href = "https://www.example.com";// 浏览器历史操作
window.history.back(); // 后退
window.history.forward(); // 前进// 获取浏览器信息
console.log(navigator.userAgent); // 浏览器标识

DOM(文档对象模型)

DOM 是浏览器将 HTML 文档解析后形成的树形结构模型,它将文档中的每个元素都转换为可被 JavaScript 操作的对象。即整个文档是一棵DOM树,根节点是document对象。

目的:增删改查 DOM 节点,实现页面动态变化。

// 获取元素
const element = document.getElementById("id");
const elements = document.getElementsByClassName("class");// 修改内容
element.textContent = "新内容";
element.innerHTML = "<span>HTML内容</span>";// 修改样式
element.style.color = "red";
element.style.fontSize = "16px";// 新增元素
const newDiv = document.createElement("div");
document.body.appendChild(newDiv);// 删除元素
parentElement.removeChild(childElement);

事件

事件是用户与页面交互的行为或浏览器自身的状态变化(如点击、加载完成等),JS 通过 "事件监听" 来响应这些行为。

鼠标事件:click(点击)、mouseover(鼠标移入)、mouseout(鼠标移出)
键盘事件:keydown(按键按下)、keyup(按键释放)
表单事件:submit(表单提交)、change(内容改变)
页面事件:load(页面加载完成)、resize(窗口大小改变)

事件流:
事件触发后会经历三个阶段
捕获阶段:从最外层元素向目标元素传播
目标阶段:到达触发事件的元素
冒泡阶段:从目标元素向最外层元素传播(可通过 event.stopPropagation() 阻止冒泡)

//事件的绑定
const btn = document.getElementById("btn");
btn.addEventListener("click", function() {console.log("处理点击事件");
});

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

相关文章:

  • 英语单词:ad-hoc
  • BugKu Web渗透之成绩查询
  • 白杨SEO:网站优化怎么做?应用举例和适合哪些企业做?参考
  • 速成Javascript(二)
  • 新书速览|SQL Server运维之道
  • 【第三方网站运行环境测试:服务器配置(如Nginx/Apache)的WEB安全测试重点】
  • 激活函数篇(3):Softmax
  • maven scope 详解
  • 通信原理实验之线性均衡器-迫零算法
  • dht11传感器总结
  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU之串口DMA
  • 【C++游记】子承父业——乃继承也
  • 91美剧网官网入口 - 最新美剧资源在线观看网站
  • 保姆级教程 | 在Ubuntu上部署Claude Code Plan Mode全过程
  • 【论文阅读】MotionXpert:基于肌电信号的优化下肢运动检测分类
  • Spring事务管理机制深度解析:从JDBC基础到Spring高级实现
  • [灵动微电子MM32SPIN0280]从灵动微电子看电机专用MCU
  • Deeplizard 深度学习课程(五)—— 模型训练
  • 数据结构01:顺序表
  • react Antd Table 多选大数据量 UI渲染很慢的解决方案
  • 每日五个pyecharts可视化图表日历图和箱线图:从入门到精通
  • ChatGPT登录,拒绝访问,错误1020解决办法
  • THM Whats Your Name WP
  • QT .pro文件的常见用法
  • 与trae携手,构建owtb一体化物流平台之--需求文档V0.3
  • RTL8198E SDK温控机制
  • 家电公司跨界造车,追觅能否造出“电动时代的布加迪”
  • 【架构师干货】软件工程
  • 从卡顿到丝滑:大型前端项目 CSS 优化全攻略
  • Agent实战教程:Langgraph的StateGraph以及State怎么用