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

前端BOM常用操作

BOM操作常用命令详解及代码案例

BOM(Browser Object Model)是浏览器对象模型,是浏览器提供的JavaScript操作浏览器的API。BOM提供了与网页无关的浏览器的功能对象,虽然没有正式的标准,但现代浏览器已经几乎实现了JavaScript交互性方面的相同方法和属性,因此常被认为是BOM的方法和属性。本文将详细介绍BOM操作中的常用命令,并通过代码案例进行解释。

1. 获取浏览器窗口尺寸
  • 获取可视窗口宽度window.innerWidth
  • 获取可视窗口高度window.innerHeight
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var m1 = window.innerWidth;var m2 = window.innerHeight;console.log(m1);console.log(m2);</script>
</body>
</html>
2. 浏览器的弹出层
  • 提示框window.alert('提示信息')
  • 询问框window.confirm('提示信息')
  • 输入框window.prompt('提示信息', '默认值')
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// window.alert('你好!')// var res = window.confirm('你好吗?')// console.log(res)var res2 = window.prompt('你是哪个省的?');console.log(res2);</script>
</body>
</html>
3. 开启和关闭标签页
  • 开启window.open('地址')
  • 关闭window.close()
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button id="on">开启</button><button id="off">关闭</button><script>var on = document.getElementById('on');var off = document.getElementById('off');on.onclick = function() {window.open('https://www.baidu.com/');}off.onclick = function() {window.close();}</script>
</body>
</html>
4. 浏览器常见事件
  • 资源加载完毕window.onload = function() {}
  • 可视尺寸改变window.onresize = function() {}
  • 滚动条位置改变window.onscroll = function() {}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><img src="图片链接" alt=""><script>window.onload = function() {console.log('资源已经加载完毕');}window.onresize = function() {console.log('可视尺寸改变');}window.onscroll = function() {console.log('滚动条位置改变');}</script>
</body>
</html>
5. 浏览器的历史记录操作
  • 回退页面window.history.back()
  • 前进页面window.history.forward()
  • 跳转到指定页面window.history.go(n),其中n可以是负数(表示后退)或正数(表示前进)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button onclick="goBack()">回退</button><button onclick="goForward()">前进</button><button onclick="goToPage(-2)">回退两页</button><script>function goBack() {window.history.back();}function goForward() {window.history.forward();}function goToPage(n) {window.history.go(n);}</script>
</body>
</html>
6. 浏览器卷去的尺寸和滚动
  • 卷去的高度document.documentElement.scrollTopwindow.scrollY
  • 卷去的宽度document.documentElement.scrollLeftwindow.scrollX
  • 滚动到指定位置window.scrollTo(left, top)window.scrollTo({left: xx, top: yy, behavior: 'smooth'})
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {width: auto;height: 3000px;}button {position: fixed;bottom: 50px;right: 50px;}</style>
</head>
<body><button id="go">传送</button><script>var go = document.getElementById('go');go.onclick = function() {window.scrollTo({left: 300, top: 400, behavior: "smooth"});}</script>
</body>
</html>
7. Navigator对象

Navigator对象包含有关浏览器的信息。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>console.log('浏览器品牌', navigator.appName);console.log('浏览器版本', navigator.appVersion);console.log('用户代理', navigator.userAgent);console.log('操作系统', navigator.platform);</script>
</body>
</html>
http://www.lryc.cn/news/450972.html

相关文章:

  • 【Go】-viper库的使用
  • JavaWeb酒店管理系统(详细版)
  • C++ | 定长内存池 | 对象池
  • python画图|自制渐变柱状图
  • 基于RPA+BERT的文档辅助“悦读”系统 | OPENAIGC开发者大赛高校组AI创作力奖
  • K8S部署流程
  • DevExpress WinForms中文教程:Data Grid - 如何添加或删除行?
  • u盘格式化后数据能恢复吗?2024年Top4恢复神器来帮忙
  • 深度学习·Argparse
  • 制造企业为何需要PLM系统?PLM系统解决方案对制造业重要性分析
  • http协议中的header详细讲解
  • 探索后量子安全:基于格加密技术的未来密码学展望
  • WPF之UI进阶--完整了解wpf的控件和布局容器及应用
  • unity一键注释日志和反注释日志
  • VBA数据库解决方案第十五讲:Recordset集合中单个数据的精确处理
  • 甄选范文“论软件需求管理”,软考高级论文,系统架构设计师论文
  • Android Studio Dolphin 中Gradle下载慢的解决方法
  • Excel实现省-市-区/县级联
  • 【优化代码结构】函数的参数归一化
  • CSS中height设置100vh和100%的区别
  • 红米k60至尊版工程固件 MTK芯片 资源预览 刷写说明 与nv损坏修复去除电阻图示
  • QEMU使用Qemu-Guest-Agent传输文件、执行指令等
  • 【漏洞复现】金和OA C6 GeneralXmlhttpPage.aspx Sql注入漏洞
  • 复数表示的电场
  • 常用快捷键整理
  • 【Transformer】长距离依赖
  • Git傻傻分不清楚(下)
  • golang学习笔记27-反射【重要】
  • 利用Puppeteer-Har记录与分析网页抓取中的性能数据
  • YOLOv5改进系列(1)——添加CBAM注意力机制