【JavaScript】掌握BOM浏览器对象模型

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 【JavaScript】掌握BOM浏览器对象模型,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

🍈作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生

🍇个人主页:亦世凡华、的博客

🍓系列专栏:JavaScript专栏

🥝推荐一款模拟面试刷题神器🔥:点击跳转进入网站

目录

🏆BOM概述

🍇BOM的构成

🍈窗口加载事件

window.onload

window.addEventListener

DOMContentLoaded 

🍉窗口调整大小事件


🏆BOM概述

BOM(Browser Object Model)即浏览器对象模型,它提供独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。

BOM由一系列相关的对象构成,并且每个对象都提供了很多的方法和属性。

BOM缺乏标准,JavaScript的语法标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分。

DOM和BOM的区别
DOM BOM
文档对象模型 浏览器对象模型
DOM就是把[文档]当作一个[对象]来看待 BOM就是把[浏览器]当作一个[对象]来看待
DOM的顶级对象是document BOM的顶级对象是window
DOM主要学习的是操作页面元素 BOM主要学习的是浏览器窗口交互的一些对象
DOM是W3C标准规范 BOM是浏览器厂商在各自浏览器上定义的,兼容性较差

🍇BOM的构成

BOM比DOM更大,它包含DOM

【JavaScript】掌握BOM浏览器对象模型

window对象是浏览器的顶级对象,它具有双重角色

1.它是JS访问浏览器窗口的一个接口

2.它是一个全局对象。定义在全局作用域中的变量、函数都会变成window对象的属性和方法

在调用时可以省略window,如使用alert();、prompt();等。

注意:window下有一个特殊属性 window.name

🍈窗口加载事件

window.onload

window.onload是窗口(页面)加载事件,当文档内容完全加载完成会触发该事件(包括图像、脚本文件、CSS、文件等)的调用处理函数。简言之:window.onload会等所有事件加载完成后在执行,所以其JS代码可以放在任何地方。

// 格式如下
window.onload = function(){}
// 或者
window.addEventListener('load',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>
    <script>
        window.onload = function(){
            var btn = document.querySelector('button');
            btn.addEventListener('click',function(){
                alert('Hello World')
            })
        }
    </script>
    <button>按钮</button>
</body>
</html>

【JavaScript】掌握BOM浏览器对象模型

注意:

1.有了window.onload就可以把JS代码写到页面元素的上方,因为onload是等页面内容全部加载完毕,在去执行处理函数。

2.window.onload传统注册事件方式只能写一次,如果有多个,会以最后一个为准。

3.如果使用addEventListener则没有限制。

window.addEventListener

<!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.addEventListener('load',function(){
            var btn = document.querySelector('button');
            btn.addEventListener('click',function(){
                alert('Hello World')
            })
        })
        window.addEventListener('load',function(){
            alert('你好 世界')
        })
    </script>
    <button>按钮</button>
</body>
</html>

【JavaScript】掌握BOM浏览器对象模型

DOMContentLoaded 

document.addEventListener('DOMContentLoaded',function(){}) 

DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等,所以加载速度比 load 更块一些。ie9以上才支持,如果页面的图片很多的话,从用户访问到onload触发可能需要较长时间,交互效果就不能实现,必然影响用户的体验,此时用DOMContentLoaded时间比较合适。

<!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.addEventListener('load',function(){
            var btn = document.querySelector('button');
            btn.addEventListener('click',function(){
                alert('Hello World')
            })
        })
        window.addEventListener('load',function(){
            alert('你好 世界')
        })
        document.addEventListener('DOMContentLoaded',function(){
            alert('我先执行的哦')
        })
    </script>
    <button>按钮</button>
</body>
</html>

【JavaScript】掌握BOM浏览器对象模型

🍉窗口调整大小事件

window.onresize = function(){}
window.addEventListener('resize',function(){})

window.onresize是调整窗口大小加载事件,当触发时就调用的处理函数。

注意:

1.只要窗口大小发生像素变化,就会触发这个事件。

2.window.innerWidth当前屏幕的宽度,经常用这个事件完成响应式布局。

<!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>
        div{
            width: 200px;
            height: 200px;
            background-color: #008c8c;
        }
    </style>
</head>
<body>
    <script>
        window,addEventListener('load',function(){
            var div = document.querySelector('div');
            window.addEventListener('resize',function(){
                console.log(window.innerWidth);
                console.log('变化了');
                if(window.innerWidth<=600){
                    div.style.display = 'none'
                }else{
                    div.style.display = 'block'
                }
            })
        })
    </script>
    <div></div>
</body>
</html>

【JavaScript】掌握BOM浏览器对象模型

🍃JavaScript的学习还是要以多练习为主,想要练习JavaScript的朋友,推荐可以去牛客网看一看,链接:牛客网 里面的IT题库内容很丰富,属于国内做的很好的了,最重要的是里面的资源是免费的,是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,感兴趣的可以去看看。

【JavaScript】掌握BOM浏览器对象模型

呜呜~,原创不易。

【JavaScript】掌握BOM浏览器对象模型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/140098.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!