前端BOM常用操作详解:窗口尺寸、弹窗、历史与滚动

作者:像素猫时间:2026-10-31 16:22:25浏览:562

本文详解前端BOM(Browser Object Model)常用操作,涵盖获取可视窗口宽高、alert/prompt等弹窗交互、标签页开启与关闭、页面加载与滚动事件监听,以及浏览器历史记录的前进后退控制。通过具体代码案例解析window对象核心API,帮助开发者掌握浏览器环境交互技巧。

前言

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.scrollTop 或 window.scrollY
  • 卷去的宽度:document.documentElement.scrollLeft 或 window.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>

总结

到此这篇关于前端BOM操作常用命令详解及代码案例的文章就介绍到这了,更多相关前端BOM常用操作内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

作者最新文章