首页 > 编程语言 >【JavaScript】之浏览器对象模型(BOM)详解

【JavaScript】之浏览器对象模型(BOM)详解

时间:2024-10-30 15:16:53浏览次数:7  
标签:浏览器 对象 JavaScript window BOM console location

浏览器对象模型 (BOM:Browser Object Model ) 是 JavaScript 的一部分,它允许你与浏览器窗口进行交互。不同于 DOM(文档对象模型)主要处理网页内容,BOM 关注的是浏览器窗口本身及其各种特性,例如导航、窗口大小、浏览器历史记录等等。就是JavaScript将浏览器的各个组成部分封装成了对象。我们要操作浏览器的部分功能,可以通过操作BOM对象的相关属性或者函数来完成。

BOM中提供了如下5个对象:

对象名称描述
Window浏览器窗口对象
Navigator浏览器对象
Screen屏幕对象
History历史记录对象
Locationd地址栏对象

 

一、BOM 的核心:window、 location 对象

window 对象是 BOM 的顶层对象,代表着浏览器窗口本身。所有其他 BOM 对象都是 window 对象的属性。这意味着你可以直接使用 alert() 而不是 window.alert(),因为 window 是全局作用域。

二、window 对象

window对象提供了获取其他BOM对象的属性:

属性描述
history用于获取history对象
location用于获取location对象
Navigator用于获取Navigator对象
Screen用于获取Screen对象

也就是说我们要使用location对象,只需要通过代码window.location或者简写location即可使用

window也提供了一些常用的函数,如下表格所示:

函数描述
alert()显示带有一段消息和一个确认按钮的警告框。
comfirm()显示带有一段消息以及确认按钮和取消按钮的对话框。
setInterval()按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout()在指定的毫秒数后调用函数或计算表达式。
  • alert()函数:弹出警告框,函数的内容就是警告框的内容

    <script>
        //window对象是全局对象,window对象的属性和方法在调用时可以省略window.
        window.alert("Hello BOM");
        alert("Hello BOM Window");
    </script>

  • confirm()函数:弹出确认框,并且提供用户2个按钮,分别是确认和取消。

    confirm("您确认删除该记录吗?");

但是我们怎么知道用户点击了确认还是取消呢?所以这个函数有一个返回值,当用户点击确认时,返回true,点击取消时,返回false。我们根据返回值来决定是否执行后续操作。修改代码如下:再次运行,可以查看返回值true或者false

var flag = confirm("您确认删除该记录吗?");
alert(flag);

点击确定后:true

  • setInterval(fn,毫秒值):定时器,用于周期性的执行某个功能,并且是循环执行。该函数需要传递2个参数:

    fn:函数,需要周期性执行的功能代码

    毫秒值:间隔时间

    //定时器 - setInterval -- 周期性的执行某一个函数
    var i = 0;
    setInterval(function(){
         i++;
         console.log("定时器执行了"+i+"次");
    },2000);

    刷新页面,浏览器每个一段时间都会在控制台输出,结果如下:

  • setTimeout(fn,毫秒值) :定时器,只会在一段时间后执行一次功能。参数和上述setInterval一致

    //定时器 - setTimeout -- 延迟指定时间执行一次 
    setTimeout(function(){
        alert("JS");
    },3000);

    浏览器打开,3s后弹框,关闭弹框,发现再也不会弹框了。(以下图片为三秒后弹框)

三、location 对象

  • window.location 对象: 控制浏览器导航,包含以下常用属性和方法:

    • href:获取或设置当前 URL。

      console.log(window.location.href); // 获取当前URL
      window.location.href = "https://www.example.com"; // 跳转到 example.com
    • hostname:返回当前 URL 的主机名。

      console.log(window.location.hostname); // 输出 "www.example.com" (如果当前URL是https://www.example.com)
    • pathname:返回当前 URL 的路径名。

      console.log(window.location.pathname); // 输出 "/path/to/page.html" (如果当前URL是https://www.example.com/path/to/page.html)
    • reload():重新加载当前页面。

      window.location.reload();
    • assign():加载新的 URL。

      window.location.assign("https://www.google.com"); // 跳转到 google.com

四、history 对象

  • window.history 对象: 操作浏览器历史记录。

    • back():返回上一页。

      window.history.back();
    • forward():前进到下一页。

      window.history.forward();
    • go():跳转到指定页面(相对当前页面)。

      window.history.go(-2); // 后退两页
      window.history.go(1);  // 前进一页,等同于 forward()

五、navigator 对象

  • window.navigator 对象: 提供浏览器和操作系统的信息。

    • userAgent:返回用户代理字符串,包含浏览器版本、操作系统等信息。

      console.log(navigator.userAgent); // 输出类似 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"

    • online:指示浏览器是否在线。

      if (navigator.online) { 
          console.log("在线"); 
      } else {
          console.log("离线");
      }

六、获取窗口尺寸和位置

  • 获取浏览器窗口的尺寸和位置:

    console.log("Inner Width:", window.innerWidth);
    console.log("Inner Height:", window.innerHeight);
    console.log("Outer Width:", window.outerWidth);
    console.log("Outer Height:", window.outerHeight);
    console.log("Screen X:", window.screenX);
    console.log("Screen Y:", window.screenY);

  • window.scrollTo(x, y):将文档滚动到指定坐标。

    window.scrollTo(0, 100); // 垂直滚动到 100px
    window.scrollTo({ top: 200, left: 0, behavior: 'smooth' }); // 平滑滚动到顶部 200px,左侧 0px

总结

BOM 为 JavaScript 提供了与浏览器交互的强大能力。理解 BOM 的核心对象和方法,可以让你更好地控制浏览器窗口、处理用户交互和获取浏览器信息,从而创建更丰富的 Web 应用。 希望本文和其中的示例能帮助你更好地掌握 JavaScript BOM!

标签:浏览器,对象,JavaScript,window,BOM,console,location
From: https://blog.csdn.net/weixin_64178283/article/details/143365049

相关文章

  • JavaScript 实现对 JSON 对象数组数据进行分页处理
    JavaScript实现对JSON对象数组数据进行分页处理在前端JavaScript中对JSON对象数组进行分页,可以通过以下方式实现:分页函数示例代码假设有一组JSON对象数据,比如一组用户信息:constdata=[{id:1,name:"Alice"},{id:2,name:"Bob"},{id:3,name:"......
  • JavaScript基础知识——黑马JavaWeb学习笔记
    JavaScript基础JavaScript:跨平台、面向对象的脚本语言(脚本语言:不需要编译,浏览器解释完直接运行)作用:控制网页行为,使网页可交互ps:JavaScript与Java是两门完全不同的语言本文为学习黑马程序员JavaWeb开发教程中JS部分学习笔记文章目录JavaScript基础一、JS引入方式1.......
  • 前端JavaScript的异步编程:从回调到Promise再到Async/Await
    写在前面在前端开发中,异步编程是一个非常重要的概念。随着JavaScript语言和前端技术的发展,异步编程的模式也在不断演进。本文将带你了解从最初的回调函数(Callback)到Promise,再到现代的Async/Await,这些异步编程模式的演变过程。回调函数(Callback)回调函数是最早期的异步编程......
  • javascript 数组 filter
    javascript数组filter在JavaScript中,filter方法被用于创建一个新数组,该数组包含通过提供的函数实现的测试的所有元素。解法1:基本使用方法letnumbers=[4,9,16,25,29];letnewNumbers=numbers.filter(num=>num>10);console.log(newNumbers);//......
  • javascript-Web APLs (三)
     事件流指的是事件完整执行过程中的流动路径 说明:假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段 简单来说:捕获阶段是从父到子冒泡阶段是从子到父 实际工作都是使用事件冒泡为主事件捕获DOM.addEventListener(事件类型,事件处......
  • 从零开始的JavaScript基础!
    目录一、JavaScript的概述二、如何在HTML页面中使用JS(一)、行内式 (二)、内嵌式(三)、外链式(四)、基本执行顺序1.从上到下线性执行:2.阻塞行为:(五)、JS输出方式1. alert() 通过浏览器弹出框进行输出 2.document.write() 直接在网页页面中进行输出 3.console.log()......
  • JavaScript基本内容续集之函数和对象
    书接上篇,我们讲到了JavaScript的基本内容,这篇讲到JavaScript的函数和对象。目录一、函数(一)概述(二)函数的定义(三)函数的使用1、在程序中调用(分为有返回值和无返回值调用)①无返回值的调用②有返回值的调用2、常见事件①在超链接被点击时调用(监听点击事件)②在按钮被点击......
  • 浏览器渲染
    关键渲染路径(CRP)浏览器渲染网页是一个复杂的过程,这个过程涉及关键渲染路径(CRP)。CRP包含从获取HTML、CSS和JavaScript资源开始,到最终将像素呈现在屏幕上的一系列关键步骤,这些步骤包括解析HTML、解析CSS、布局以及绘制等多个环节,MDN上的描述浏览器开始解析HTML,将收到的......
  • 2024前端面试训练计划-高频题-JavaScript基础篇
    具体内容结构(可作为回答思路)为:简略回答,详细回答1、JavaScript有几种数据类型?简略回答JavaScript共有八种数据类型,分别是Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。详细回答具体来说,分为两种类型:原始数据类型和引用数据类型:原始数据类型......
  • 在浏览器输入URL之后, 会发生什么?
    在浏览器输入URL之后的流程大体分为六步:DNS解析发起TCP连接(三次握手)发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面关闭连接请求(四次挥手)这里用一张可视化图表来演示流程1.DNS解析DNS解析就是寻找在哪台主机上有你需要的资源的过程,也就是寻找......