JavaScript进阶内容——BOM详解

Ubuntu18.04下Carla安装——经验史 Ubuntu下的Carla安装 阅读详情

JavaScript进阶内容——BOM详解

在上一篇文章中我们学习了DOM,接下来让我们先通过和DOM的对比来简单了解一下BOM

首先我们先来复习一下DOM:

  • 文档对象模型
  • DOM把 文档 当作一个 对象 来看待
  • DOM的顶级对象是 document
  • DOM的主要学习是操作页面元素
  • DOM是W3C标准规范

然后我们来介绍一下BOM:

  • 浏览器对象模型
  • BOM把 浏览器 当作一个 对象 来看待
  • BOM的顶级对象是 window
  • BOM学习的是浏览器窗口交互的一些对象
  • BOM是浏览器厂商在各自浏览器上定义的,兼容性较差

BOM概述

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

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

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

  • 它是JS访问浏览器窗口的一个接口
  • 它是一个全局变量,定义在全局作用域的变量,函数都会变成window对象的属性和方法
  • 在调用时可以省略window,前面学习的对话框都属于window方法,如alert(),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是BOM的顶级对象,我们所定义的属性和方法都属于window

        // 我们定义一个属性(可以加上window前缀)
        var code = 123;
        console.log(window.code);

        // 我们定义一个方法(可以加上window前缀)
        var fn = function() {
            // alert也属于window的方法
            window.alert('11');
        }
        window.fn();
    </script>
</body>
</html>

窗口加载事件

我们的JavaScript代码常常在HTML和CSS构造之后才会运行,因而JavaScript代码常常放于HTML的body底部

但是window的窗口加载事件可以改变我们的JavaScript书写位置:

window.onload = function(){}
window.addEventListener('load',function(){})

window.onload是窗口加载事件,当文档内容完全加载完成后会触发该事件,调用其内部的处理函数

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

DOMContentLoaded事件触发,代表仅当DOM加载完毕(不包括图片,flash等)就会执行内部处理函数

注意:

  • 我们在有了window.onload和DOMContentLoaded后可以将JavaScript代码放于页面元素上方
  • window.onload只能书写一次,取最后一次书写为准;但window.addEventListener('load',function(){})可以多次书写
  • 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应该写在body末尾,写在这个部分是无法正常使用的 -->
    <script>
        
        // 这时就需要采用页面加载事件来等待页面加载完成后再去加载JavaScript内容

        // window.onload方法在整个script中只能使用一次,不推荐
        window.onload = function() {
            // 在里面书写内容
            var but = document.querySelector('button');
            but.onclick = function(){
                alert('我是弹窗')
            }
        }

        // window.addEventListener('load',function(){})可以多次调用,推荐使用
        window.addEventListener('load',function(){
            alert('页面内容加载完成');
        })

        // document.addEventListener('DOMContentLoaded',function(){})仅针对DOM的加载,DOM加载后即可使用
        document.addEventListener('DOMContentLoaded',function(){
            alert('DOM内容加载完成');
        })
    </script>

    <button>点我弹出弹窗</button>
</body>
</html>

调整窗口大小事件

我们通过手动拉扯页面边框可以调整页面大小:

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

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

注意:

  • 只要窗口发生像素变化,就会触发该事件
  • 我们常常利用这个事件完成响应式布局,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>

    <!-- 我们设置一下div的大小,我们希望页面小于一定程度,div消失 -->
    <style>
        div {
            height: 200px;
            width: 200px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <script>
        window.addEventListener('load',function(){
            // 页面调整大小有两种语法
            // window.onresize = function(){}
            // window.addEventListener('resize',function({}))
            // 其中resize就是调整窗口加载事件,当触发就调用的处理函数

            window.addEventListener('resize',function(){
                console.log('页面变化了');
            })

            // 我们希望页面宽度小于800,div隐藏
            var div = document.querySelector('div');
            window.addEventListener('resize',function(){
                if(window.innerWidth < 800){
                    div.style.display = 'none';
                } else {
                    div.style.display = 'block';
                }
            })
        })
    </script>
    <div></div>
</body>
</html>

定时器

window对象为我们提供了两种定时器:

  • Timeout
  • Interval

回调函数

在讲解定时器之前,我们先来了解一下回调函数:

  • 回调函数callback
  • 回调函数常常是指其他内容完成之后,在一定条件下再重新调用该函数
  • 例如我们之前讲到的click事件后的函数,在我们点击某对象后才会触发;也比如我们下面即将讲到的定时器,在一定时间之后才运行的函数,被称为回到函数

Timeout定时器

Timeout分为创建和停止:

//创建方法:
window.setTimeout(调用函数,[延迟毫秒数])
//停止方法:
window.clearTimeout(timeout ID)

setTimeout讲解:

  • setTimeout()用来设置一个定时器
  • 该定时器在定时器到期后执行调用函数
  • 这个调用函数可以直接写函数,可以写函数名两种形式调用
  • 延迟的默认毫秒数为0,即如果不写延迟毫秒数,默认为立即触发状态,但该函数仍旧被认为是回调函数
  • 因为定时器较多,我们常常为定时器设置var变量标识符,同时Timeout的定时器停止中的timeout ID就是指该标识符

clearTimeout讲解:

  • clearTimeout()方法用来取消之前设置的Timeout定时器

注意:

  • Timeout的内置函数仅执行一次!

代码展示:

<!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>点击我停止计时器</button>

    <script>
        // 定时器方法:window.setTimeout(调用函数,{延迟毫秒}),window可以省略
        setTimeout(function(){
            console.log('3s到了');
        },2000)

        // 当毫秒数不设置时,默认为0,立即触发
        setTimeout(function(){
            console.log('立刻触发');
        })
        
        // 定时器函数可以是外部函数
        function timeback(){
            console.log('6s到了');
        }

        // 我们为了区分定时器,常常会加上标识符
        // 当你定义时,这个setTimeout自动开始计时
        var timer1 = setTimeout(timeback,6000);

        // 我们也可以取消掉定时器setTimeout

        // 首先我们定义定时器
        var timer = setTimeout(function() {
            console.log("10s后爆炸!");
        },10000)
        // 获得button,在button上捆绑上停止计时器的操作
        var button = document.querySelector('button');
        button.addEventListener('click',function(){
            clearTimeout(timer);
        })
    </script>
</body>
</html>

Interval定时器

Interval分为创建和停止:

//创建方法:
window.setInterval(调用函数,[延迟毫秒数])
//停止方法:
window.clearInterval(Interval ID)

setInterval讲解:

  • setInterval()用来设置一个定时器
  • 该定时器在定时器到期后执行调用函数
  • 这个调用函数可以直接写函数,可以写函数名两种形式调用
  • 延迟的默认毫秒数为0,即如果不写延迟毫秒数,默认为立即触发状态,但该函数仍旧被认为是回调函数
  • 因为定时器较多,我们常常为定时器设置var变量标识符,同时Timeout的定时器停止中的timeout ID就是指该标识符

clearInterval讲解:

  • clearInterval()方法用来取消之前设置的Interval定时器

注意:

  • Timeout的内置函数会多次执行直至被终止!

代码展示:

<!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 class="begin">点击我开启定时器</button>
    <button class="end">点击我终止计时器</button>
    
    <script>
        

        var begin = document.querySelector('.begin');
        var end = document.querySelector('.end');
        // 注意需要把setInterval的名称定义在外面,使其变为全局变量
        var timer = null;
        begin.addEventListener('click',function(){
            // setInterval(回调函数,【间隔秒数】)
            timer = setInterval(function(){
                console.log('1s');
            },1000);
        })
        end.addEventListener('click',function(){
            clearInterval(timer);
        })
    </script>
</body>
</html>

JavaScript执行机制

在了解JavaScript的执行机制前,我们需要先了解JavaScript的基本信息:

  • JavaScript是单线程,在同一时间只能做一件事
  • 因为我们JavaScript是为了操作DOM和BOM,我们在进行操作时不可能同时创建和删除,所以JavaScript被设置为单线程
  • 但是,JavaScript的单线程注定了JavaScript的效率低下,我们的所有任务都需要进行排队,但如果其中有一项任务等待时间较长,就会导致后面的任务不进行,造成页面渲染不连贯

所以在HTML5中,允许JavaScript脚本建立多个线程,于是出现了同步和异步:

  • 同步:
    • 前一个任务执行完毕后,后一个任务才能执行
  • 异步:
    • 可以同时处理多个任务

同时也就区分出同步任务和异步任务:

  • 同步任务:
    • 同步任务都在主线程上执行,形成一个执行线
  • 异步任务:
    • JS的异步任务都是通过回调函数执行的
    • 一般而言异步任务分为:
      • 普通事件 : 如click,resize等
      • 资源加载 : 如load,error等
      • 定时器: 包括Timeout,Interval等

因而JavaScript的执行机制如下:

  1. 先执行执行栈中的同步任务
  2. 异步任务(回调函数)放入任务队列中
  3. 一旦执行栈的所有同步任务执行完毕,系统就会按照次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,加载进执行栈的末尾并开始执行

我们给出一张图片来解释上述内容:

location对象

在学习location对象之前,我们先来了解一下URL:

  • 统一资源定位符(URL)是互联网上标准资源的地址.
  • 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
protocol://host[:port]/path/[?query]#fragment
http://www.itcast.cn/index.html?name=andy&age=18#link
组成说明
protocol通信协议 常用的http,ftp,maito
host主机(域名)
port端口号 可选. 省略时使用方案的默认端口
path路径 由零个或多个'/'隔开的字符串,一般用来表示主机上的一个目录或文件地址
query参数 以键值对的形式,用&隔开
fragment片段 #后面内容常用于连接 锚点

在了解了URL之后我们来介绍一下location:

  • window对象为我们提供了一个location属性用来获得或设置窗体的URL,并且可以用来解析URL
  • 因为这个属性返回的是一个对象,所以我们也将该属性称为location对象,我们可以直接输出location获得对象,也可以采用属性方法获得其内容
location对象属性和方法返回值
location.href获得或设置 整个URL
location.host返回主机(域名)
location.port返回端口号 若没有返回空字符串
location.pathname返回路径
location.search返回参数
location.hash返回片段
location.assign和href,用来跳转页面(附带历史记录)
location.replace和href,用来跳转页面(不附带历史记录)
location.reload重新加载该页面(ctrl+F5)

代码展示:

<!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>
    
    <--我们希望点击该按键后,出现提示n秒后跳转页面,并在倒计时结束后跳转页面-->
    
</head>
<body>
    <button>点击我5s后跳转页面</button>
    <div></div>

    <script>
        var button = document.querySelector('button');
        var div = document.querySelector('div');
        button.addEventListener('click',function(){
            // 在点击后,出现倒计时:
            var time = 5;
            setInterval(function(){
                if(time == 0){
                    //在这里我们使用href来跳转页面
                    location.href = 'https://www.baidu.com/';
                } else {
                    // 这里注意div修改文字用innerHTML
                    div.innerHTML = '还剩下' + time + '秒后跳转页面';
                    time--;
                }
            },1000)
        })
    </script>
</body>
</html>
<!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>
    
    <--这部分我们来讲解location的三种方法-->
    
</head>
<body>
    <button>assign</button>
    <button>replaca</button>
    <button>reload</button>

    <script>
        var buttons = document.querySelectorAll('button');
        // assign跳转页面,且保留历史记录
        buttons[0].addEventListener('click',function(){
            location.assign('https://www.baidu.com/');
        })
        // replace跳转页面,不保留历史记录
        buttons[1].addEventListener('click',function(){
            location.replace('https://www.baidu.com/');
        })
        // reload刷新页面,类似于ctrl+f5
        buttons[2].addEventListener('click',function(){
            location.reload();
        })
    </script>
</body>
</html>

navigator对象

navigator对象包含有关浏览器的信息,它有很多属性,我们最常用的是userAgent,该属性可以返回由客户机发给服务器的user-agent头部信息,用来判断你目前使用的机型

我们常用下述代码来判断你打开的网页是电脑端还是手机端:

if(navigator.userAgent.match(各种手机品牌)) {
    //如果是手机,就转到手机端页面
    window.location.href = "https://www.baidu.com/";
} else {
    //如果是电脑,就转到电脑端页面
    window.location.href = "http://news.baidu.com/";
}

history对象

window对象给我们提供了history对象,与浏览器历史记录进行交互,该对象包含了用户访问过的URL

history对象方法说明
history.back()可以后退网页(类似于浏览器自带后退按键)
history.forward()可以前进网页(类似于浏览器自带前进按键)
history.go(参数)可以自定义前进后退页面(参数可以是正负数)

结束语

好的,关于BOM的知识我们就讲解到这里,你是否完全明白了呢?

硬件-汽车电子-TBOX/TCAM核心器件选型与系统集成设计指南 本文深入解析汽车电子TBOX/TCAM硬件架构与系统集成设计,涵盖核心器件选型、电源管理、信号完整性优化等关键点。重点分享5G模组选型避坑经验、MCU隐性指标及热设计验证方案,为车载通信系统开发提供实用指南。 阅读详情

相关推荐

Vivado ILA抓不到低频信号?试试Capture Control模式,保姆级配置教程(附PWM调试实例)

本文详细解析了Vivado ILA的Capture Control模式在低频信号捕获中的应用,特别针对PWM调试等场景提供保姆级配置教程。通过条件采样和时间拉伸技术,有效解决传统ILA采样在低频信号调试中的存储深度不足、关键信号丢失等问题,并附赠呼吸灯PWM的完整调试实例,帮助FPGA开发者提升调试效率。

weixin_42549451的博客 350

java bom 文件读取_java – 如何解析包含BOM的XML文件?

该HTTP服务器正在以GZIP形式发送内容(Content-Encoding:gzip;如果您不知道这意味着什么,请参阅http://en.wikipedia.org/wiki/HTTP_compression),因此您需要将aUrl.openStream()包装在GZIPInputStream中,它将为您解压缩它.例如:builder.build(new GZIPInputStream(aUrl...

weixin_31776191的博客 390

【HSPiP应用指南】从理论到实践:如何利用汉森溶解度参数优化配方设计

本文深入解析了汉森溶解度参数(HSP)理论及其在配方设计中的核心价值,并详细介绍了如何利用HSPiP软件工具从理论走向实践。文章通过匹配溶解度参数、计算汉森距离(Ra),系统阐述了如何解决溶剂选择、颜料分散稳定性及扩散行为预测等关键问题,并结合界面气相色谱(IGC)等实验方法提升预测精度,旨在帮助配方师实现配方设计的可视化、可量化与高效优化。

weixin_29305313的博客 1650

Java处理带BOM的文本

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/331095 Java处理带BOM的文本   说起BOM,这个问题还比较麻烦,因为BOM不可见,但用程序做不同编码文本处理时候却常常需要考虑到BOM的问题。在此之前,先对BOM做个简单认识。   先看看带BO

victoryckl的专栏 1620

VTK基础教程(1)- vtkPolyData 介绍

目录 VTK的编译与环境搭建 VTK一般渲染流程 VTK数据类型-vtkPolyData 使用vtk自带的多边形数据 使用自己创建的数据 添加顶点颜色 添加面颜色 VTK的编译与环境搭建 这部分目前已经有了大佬做了成熟的傻瓜式配置,大家可以参考这篇文章:VTK+VS2019(或其他版本均可) 傻瓜式一站式 配置_Nancy_fairy的博客-优快云博客_vs2019 vtk VTK一般渲染流程 这部分的介绍也很多,大家可以参考这篇文章:VTK笔记-了解VTK_黑山老妖的博客.

qq_35769071的博客 9054

红外小目标检测新思路:当DETR遇上Mamba状态空间模型,速度提升3倍

本文探讨了将Mamba状态空间模型与DETR框架结合,用于解决红外小目标检测的难题。该创新方案通过线性复杂度的Mamba模块替代传统Transformer的自注意力机制,在保持高检测精度的同时,显著提升了推理速度,实现了实时性能的突破,为无人机巡检、安防监控等场景提供了高效解决方案。

hhh00的博客 666

java中BOM是什么_Java-BOM与DOM对象

一、BOM对象BOM(Browser Object Model)是指浏览器对象模型,可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 JavaScript 有能力与浏览器"对话"。1. window对象window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用win...

weixin_28835551的博客 1957

算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

【代码】算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

尘世冰封的专栏 1019

计划bom表 java_java如何处理BOM文本

java如何处理BOM文本说起BOM,这个疑问还比拟费事,由于BOM不可见,但用顺序做不一样编码文本处置时分却经常须要思索到BOM的疑问。在此之前,先对BOM做个容易见解。以下是小编为大家搜索整理的java如何处理BOM文本,希望能给大家带来帮助!更多精彩内容请持续关注我们应届毕业生考试网!下面举个例子,针对UTF-8的文件BOM做个处理:String xmla = StringFileToolk...

weixin_33195817的博客 318

【YOLOv13[基础]】热力图可视化实践 | 脚本升级 | 优化可视化效果 | 论文必备 | GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM等

本文将进行添加YOLOv13版本的升级版热力图可视化功能的实践,支持图像热力图可视化、优化可视化效果、 可以选择使用GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM, HiResCAM, LayerCAM, RandomCAM, EigenGradCAM。一个参数即可设置是否显示检测框等。

静谧、淡雅 647

【Simulink教程案例19】基于simulink的扩频通信系统建模与仿真

扩频是一种应用于数字调制信号的调制技术,可以提高传输信号的带宽。扩频通信具有抗干扰能力强,扩频增益越大,抗干扰能力越强。而且扩频通信具有很强的保密性,扩频后信号近似白噪声,功率谱密度也很低。扩频通信可用于多址通信。扩频调制有如下三个特点:① 扩频后信号的带宽远大于信号所需的带宽② 使用扩频码进行扩频调制,扩频码与信号中的数据相互独立③ 在接收端,通过将接收信号与扩频码的同步副本进行相关,实现解扩。

FPGA/MATLAB学习教程/源码/项目合作开发 2197

JavaScript进阶班之BOM技术(五)

1.BOM概述 BOM = Browser Object Model – 浏览器对象模型 它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性 BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA, DOM 的标准化组织是 W3C, BOM最初是Netscape 浏览器标准的一部分 1.1 BOM的构成 window 对象是浏览器的顶级对象,它具有双重角色 它是 JS 访问浏览器窗口的一个接口 它

Augenstern_QXL的博客 2万+

二十一、CANdelaStudio深入-SPRMIB的配置

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的肯定响应抑制位配置,欢迎各位朋友订阅、评论,可以提出宝贵意见,以持续输出更好的作品,同时会根据评论、私信不定期更新文章内容,以及专栏目录。订阅该专栏的朋友可私信小编免费答疑解惑(^U^)ノ~YO CANdelaStudio-从入门到深入目录 文章目录CANdelaStu

诊断协议那些事儿's blog 1870

JavaScript详解十八 ——BOM

由于历史原因,navigator对象中的大部分属性都已经不能帮助我们识别浏览器了,一般我们只会用userAgent 来判断浏览器的信息,userAgent是一个字符串,这个字符串中包含有用来描述浏览器信息的内容,不同的浏览器会有不同的userAgent。定义在全局作用域中的变量,函数都会变成window对象的属性和方法,在调用的时候,可以省略window,前面学习的对话框都属于window对象方法,如alert(),prompt()等。比如:我们要烧水煮饭,等水开了(10分钟后),再去切菜,炒菜。

奋斗的小前端 1794

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript进阶 | BOM

JavaScript进阶 | BOM 文章目录JavaScript进阶 | BOM一、概述二、window 对象的常见事件1. 窗口加载事件2. 调整窗口大小事件三、定时器1. setTimeout()定时器2. clearTimeout()停止定时器3. setInterval() 定时器4. clearInterval()停止定时器5. this 指向6. 案例四、JS执行队列1. JS是单线程2. 同步和异步3. 执行队列五、location对象1. URL2. location对象属性3. 获取UR

Caiyii530的博客 328

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JavaScript之BOM 操作介绍

不过,BOM 与严格标准化的 JS 语法(由 ECMA 组织规范)和 DOM(由 W3C 组织规范)不同,它最初源于 Netscape 浏览器的标准,在标准化方面存在一定缺失,这也导致了不同浏览器对 BOM 的支持和实现存在差异。然而,由于历史原因,navigator 对象中的大部分属性在现代浏览器中已不再可靠,无法准确地识别浏览器类型和版本。通过事件循环机制,JavaScript 能够在单线程环境下高效地处理同步和异步任务,实现复杂的交互功能和非阻塞的 I/O 操作,确保页面的流畅性和响应性。

奋斗的小前端 1085

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

javaScript BOM简介

4.1.1、BOM简介BOM(browser Object)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。BOM由一系列的对象构成,并且每个对象都提供了很多方法与属性BOM缺乏标准,JS语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分4.1.2、DOM与BOM的区别类别DOMBOM1文档对象模型浏览器对象模型2DOM是把文档当做一个对象来看待把浏览器当做一个对象来看待3。

2403_88615647的博客 1626

JavaScript之BOM

window对象是浏览器的顶级对象,它具有双重角色。它是JS访问浏览器窗口的一个接口。它是一个全局对象。定义在全局作用域中的变量、函数都会变成window对象的属性和方法。在调用的时候可以省略window,前面学习的对话框都属于window对象方法,如alert()、prompt()等。注意:window下的一个特殊属性window.nameload语法window可省略 传统写法是加on作用:加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件。

xrkhy的博客 1152

JS(JavaScript)的BOM操作

JavaScript共三部分组称:ECMAScript核心语法、DOM文档对象模型、BOM浏览器对象模型BOM就是浏览器对象模型以下是BOM的结构图。

感谢阅读 1846

JavaScript基础——DOM和BOM的常用api

DOM和BOM所有常用的API都在这里

蜡笔不新的博客 2113

JS进阶:DOM、BOM与初探Web API

提示:这是一个非常弱智的前端学习者的一点追求弱智简单清晰的傻瓜笔记,一个经常打完代码打辩论的某弗雷尔卓德寒冷211高校的天天想家的孩子的“胡说八道”。 这是第四节——JS进阶DOM、BOM与事件监听

hhyyzz4121的博客 1718

JavaScript-DOM和BOM详解

DOM和BOM(DOM((简介,事件(onclick单击事件、onload事件),BOM(简介,分类,语法( Navigator 当前浏览器、Histry 向前或向后翻页、Location 地址栏的信息))

主营前端方向,技术栈是vue 1517

js中BOM和DOM之间的详解

一、Javascript组成JavaScript的实现包括以下3个部分:1、核心(ECMAScript):描述了JS的语法和基本对象。2、文档对象模型 (DOM):处理网页内容的方法和接口。3、浏览器对象模型(BOM):与浏览器交互的方法和接口。二、BOM(浏览器对象模型)1、window对象说明:BOM的核心对象是window,他表示浏览器的一个实例。他既是通过JavaScript访问浏览器窗口...

tiny_wei的博客 8940

总结:JavaScript进阶重点(DOM、BOM)

一、DOM 1. dom树 2. document对象 2.1 常用属性 2.2 获取文档元素 2.3 获取特殊元素(body,html) 3. 元素对象 3.1 Element 3.2 HTMLCollection 4. 节点操作 4.1 节点层级 5.DOM事件 5.1 鼠标事件 5.2 键盘事件 5.3 注册事件 5.4 触屏事件对象(touchEvent) 5.5 事件流 5.6 事件对象 5.7 默认行为与冒泡阻止 5.8 事件委托 二、BOM 1. Window对象 1.1 属性 1.2 方法

熟悉JS拼写的FE 778

JS中的DOM与BOM

一.Javascript组成 JavaScript的实现包括以下3个部分: ECMAScript(核心)描述了JS的语法和基本对象。文档对象模型 (DOM)处理网页内容的方法和接口浏览器对象模型(BOM)与浏览器交互的方法和接口 javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异,IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaS...

CodeNotes 3334

JavaScript进阶之BOM技术(五)

BOM = Browser Object Model 👉浏览器对象模型它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 windowBOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA, DOM 的标准化组织是 W3C, BOM最初是Netscape 浏览器标准的一部分DOMBOM文档对象模型浏览器对象模型DOM 就是把 文档 当作一个对象来看待把 浏览器当作一个对象来看待。

LSH_的个人博客 1021
上一篇: 并发程序的噩梦——数据竞争
下一篇: kubernetes 静态存储与动态存储
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值