第十一章 浏览器对象模型(BOM)的介绍和使用

文章目录

  • 一、BOM介绍
  • 二、window的子对象
  • 三、window的方法和事件
  • 四、定时器
  • 五、练习

一、BOM介绍

  1. BOM是Browser Object Model的缩写,简称浏览器对象模型。这个对象就是window
  2. BOM提供了独立于内容而与浏览器窗口进行交互的对象
  3. BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性
  4. BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C
  5. 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window
  6. 因为js最终被运行在浏览器环境中,所以js中所有的数据最终都会被window收录
    • 具体的表现为:所有的全局,都被直接绑定在了window身上,尤其是js自带的全局
      • window.alert() => alert()
      • window.parseInt() => parseInt()
      • window.parseFloat() => parseFloat()
      • window.document.write() => document.write()
      • window在使用过程中可以省略
    • 没有明确隶属对象的函数,也都指向window
      • 需要配合关键字:this,查看
// 有隶属对象
var obj = {fn:function(){};
}
obj.fn();// 全局函数,没有隶属对象
function fn(){}
fn();function box(){function fn(){}// 局部函数,没有隶属对象fn();
}
box();function box2(f){// 回调函数,没有隶属对象f();
}
box2( function(){} );

二、window的子对象

image.png

  1. history:历史记录
    • 方法:
      • 后退:history.back()
      • 前进:history.forward()
      • 走n步:history.go(n)
        • 正:前进;负:后退;0:刷新
    • 属性:
      • 个数:history.length
  2. location:地址
    • 属性:
      • 完整URL:location.href
      • 协议:location.protocol
      • 域:location.host
      • 域名:location.hostname
      • 源:location.origin
      • 端口:location.port
      • 路径名:location.pathname
      • 查询数据:location.search
      • 锚点连接:location.hash
    • 方法:
      • 刷新:location.reload()
      • 跳转到指定url:location.assign("url")
  3. navigator:浏览器信息
    • 浏览器信息:navigator.userAgent
  4. screen:视窗大小
  5. frames:框架对象,配合iframe标签使用
  6. document:文档,网页
  7. localStorage & sessionStorage:本地存储

三、window的方法和事件

  1. window的方法
    • alert()
      • 信息框
    • confirm()
      • 选择框,注意返回值
    • prompt()
      • 对话框,注意返回值
    • open()
      • open("url", "_blank", "width=300,height=300,left=200,top=100")
    • close()
      • 注意浏览器拦截机制,部分浏览器有兼容
    • scrollTo()
      • 参数为两个数值或一个对象
      • scrollTo(x, y)
      • scrollTo({top: y, left: x, behavior: 'smooth'})
  2. window的事件
    • load
      • 页面结构加载完成
      • 外部资源加载完成
    • scroll
      • 获取滚走了的距离
        • document.documentElement.scrollTop
        • document.documentElement.scrollLeft
    • resize
      • 获取当前可视区域的尺寸
        • document.documentElement.clientWidth
        • document.documentElement.clientHeight

四、定时器

  1. 计时器
    • 每隔指定时间,执行一次指定功能
    • 开启:setInterval(参数1, 参数2)
      • 参数1:回调函数
      • 参数2:毫秒数
      • 每隔指定的毫秒数,执行一次回调函数
      • 返回值:当前计时器的唯一标志,用来关闭自身
        • 建议:如果这个计时器要被清除,最好将返回值保存在变量中,将来通过变量清除当前计时器
    • 关闭:clearInterval(参数)
      • 参数:要清除的计时器的唯一标志(返回值)
  2. 延时器
    • 延迟指定时间,只执行一次指定功能
    • 开启:setTimeout(参数1, 参数2)
      • 参数1:回调函数
      • 参数2:毫秒数
      • 延迟指定的毫秒数,只执行一次回调函数
      • 返回值:当前延时器的唯一标志,用来关闭自身
        • 建议:如果这个延时器要被清除,最好将返回值保存在变量中,将来通过变量清除当前延时器
    • 关闭:clearTimeout(参数)
      • 参数:要清除的延时器的唯一标志(返回值)

五、练习

  1. 倒计时:计时器
  2. 随机点名:随机,计时器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

状态模式-举例

在软件系统中,有些对象也像水一样具有多种状态, 这些状态在某些情况下能够相互转换, 而且对象在不同的状态下也将具有不同的行为。 参考日志来设置状态。 如何判断一个设计模式是行为模式还是什么其他模式? 什么叫行为模式&#…

mongoose中http server服务器解决“Access-Control-Allow-Origin mongoose”跨域问题

问题 使用mongoose做http服务器,自己构造的浏览器端jquery在访问server时,会遇到: Access to XMLHttpRequest at http://127.0.0.1:8000/ from origin null has been blocked by CORS policy: No Access-Control-Allow-Origin header is pr…

rax3000m刷openwrt固件

rax3000m刷机过程(nand版本) 刷机准备文件https://www.123pan.com/s/X5m9-6Ynj.html提取码:VtBW 接线关系:路由器lan口接电脑 1.上传配置开启ssh的配置文件(登录路由器后台管理界面在找到配置管理,上传配置文件rax3…

计算机网络【DNS】

DNS 基本概述 与 HTTP、FTP 和 SMTP 一样,DNS 协议也是应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过下面的端到端运输协议来传送 DNS 报文。但是 DNS 不是一个直接和用户打交道的应用。DNS 是为因特…

Nature Machine Intelligence 人形机器人的层次化生成建模

2023年11月2日,德国英特尔研究院,英国伦敦大学学院和美国VERSES研究实验室的研究人员在《Nature Machine Intelligence》杂志发表了一篇题为“Hierarchical generative modelling for autonomous robots”的论文。 研究内容 人类通过规划、执行和…

某后台管理系统加密参数逆向分析

前言 在我们日常的渗透中经常会遇到开局一个登录框的情况,弱口令爆破当然是我们的首选。但是有的网站会对账号密码等登录信息进行加密处理,这一步不由得阻碍了很多人的脚步。前端的加解密是比较常见的,无论是 web 后台还是小程序&#xff0c…

【音视频 ffmpeg 学习】 跑示例程序 持续更新中

环境准备 在上一篇文章 把mux.c 拷贝到main.c 中 使用 attribute(unused) 消除警告 __attribute__(unused)/** Copyright (c) 2003 Fabrice Bellard** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated docu…

Unity JSON编码解码之LitJson 深度剖析

把LitJson的代码库放入到项目中,如图所示:JSON在游戏开发中是一种序列化/反序列化常用的技术,把游戏相关的数据,如地图组成,通过JSON编码,序列化成JSON文本,传输或存储, 要使用的时候再通过JSON技术把文本解析成数据对象&#xff…

Python FastApi连接oracle进行查询

这边技术选型是cx_oracle进行连接查询,cx_oracle的使用首先要有官方的客户端才能连接到数据库,python并不自带客户端。我用是Python3.9 安装客户端 可以到官网在选择最新版进行下载。 Instant Client for Microsoft Windows (x64) 64-bit 或者直接从我…

Cassandra详解

Cassandra 概念 Apache Cassandra 是高度可扩展的,高性能的分布式 NoSQL 数据库。 Cassandra 旨在处理许多商品服务器上的大量数据,提供高可用性而无需担心单点故障。 Cassandra 具有能够处理大量数据的分布式架构。 数据放置在具有多个复制因子的不同…

水准网、平面导线平差

东北大学测绘工程水准网、平面闭合导线间接平差法平差C#项目。 闭合导线程序界面: 水准网程序界面: 项目gitee地址: horizon: 东北大学测绘工程水准网,闭合导线间接平差法C#项目 (gitee.com) 注:此项目为本博主代人转…

C#中使用using关键字回收资源

目录 一、一般表达式 二、示例 三、生成 在进行文件操作后要显式调用文件流的Close方法释放文件资源,在使用数据库连接时也要调用连接对象的Close方法释放数据库资源。如果忘记调用Close方法,有可能会导致程序执行异常,而且还会导制垃圾收…