BOM详解

2023-05-16

1. ***BOM:
  什么是: Browser Object Model
      专门操作浏览器窗口的API —— 没有标准
  DHTML对象模型: 
   window 2个角色: 
        1. 代替global作为全局作用域对象
             所有全局函数和全局变量都是window的成员
        2. 封装所有DOM和BOM的API
   包括: 
      ①history 当前窗口打开后成功访问的历史记录  (window.history)
      ②location 当前窗口正在打开的URL (window.location)
      ③document DOM树的根节点,包含所有网页内容 (window.document)
      ④screen 当前显示设备的信息(window.screen)
      ⑤navigator 浏览器的配置信息(版本,名称,插件,cookie)(window.navigator)
      ⑥event 定义了浏览器中所有事件(window.event)

下图为BOM  其他属性与window为并列关系:

  window: 指代当前浏览器窗口对象
    打开和关闭窗口
    打开: open("url","name")
    关闭: close();
  
    打开一个连接,共有几种方式: 
    1. 在当前窗口打开, 可后退:
       html: <a href="url" target="_self">
       js: open("url","_self");
    2. 在当前窗口打开, 禁止后退:
       js: location.replace("url")
           在当前窗口打开新url,用新url替换history中原有url
       原理:
         history: 保存当前窗口打开后成功访问过的url的历史记录栈
    3. 在新窗口打开,可打开多个:
       html: <a href="url" target="_blank"> 
       js: open("url","_blank");
    4. 在新窗口打开,只能打开一个:
       html:<a href="url" target="name">
       js: open("url","name");
     每个窗口都有一个唯一的name属性
     name: 在内存中唯一标识一个窗口的名称
     规定: 同时只能打开一个相同name的窗口
       预定义: _self : 和当前窗口使用相同的name
                   _blank: 不指定自定义name,由浏览器随机分配

   窗口大小和窗口位置: (了解)
   窗口大小: 
      1. 完整窗口大小:  window.outerWidth/outerHeight
 ***2. 文档显示区大小: window.innerWidth/innerHeight
     调整: 2个机会: 
      1. 在打开窗口时,就规定大小:
         var config="left=?,top=?,width=?,height=?"; 
         open("url","name",config)
      2. 打开窗口后再调整——被禁用
       window.resizeTo(width,height)
       window.resizeBy(width增量,height增量)
   窗口位置: 窗口左上角距屏幕左上角的位置
       window.screenLeft|screenX 
       window.screenTop|screenY
     调整: 
       moveTo(left,top)
       moveBy(left的增量,top的增量)

1.*****定时器:
  什么是: 让程序按照指定时间执行一项任务
  何时: 
     1. 让程序每隔一段时间间隔反复执行一项任务——周期性
     2. 让程序等待一段时间后自动执行一次任务——一次性
  如何: 
    周期性定时器: 3件事: 
     1. 任务函数task
     2. 启动定时器: 将task放入定时器中,设定时间间隔
         timer=setInterval(task, ms);
        timer是唯一标识一个定时器实例的序号
            强调: task不能加(),因为是传递给定时器去回调执行
     3. 停止定时器: 
         clearInterval(timer);
        问题: 定时器往往需要自动停止
        解决: 在*任务函数*中判断临界值
                  如果未达到临界值,继续执行任务
                  否则 停止定时器

    一次性定时器:  先等待,再执行一次,然后自动释放
    3件事: 
     1. 任务函数task
     2. 启动定时器: 将task放入定时器中,设定等待时间
         timer=setTimeout(task, ms);
     3. 停止定时器: (其实是在执行之前,停止等待)
         clearTimeout(timer);

   定时器原理: 
     定时器中的回调函数,必须在主程序所有语句执行完最后才能开始执行!

2. screen对象: 
   获得屏幕的大小: 
       完整大小: screen.width/height
       何时: 用屏幕大小鉴别设备种类: ——鄙视题
          wide desktop  -  lg : 1200+
          pc                    - md: 992+
          pad                  - sm: 768+
          phone              - xs: 480+
    
       可用大小: screen.availWidth/availHeight
           去掉任务栏之后的剩余大小

3. history: 保存当前窗口打开后成功访问过的url的历史记录栈
     前进: history.go(1)
     后退: history.go(-1)
     刷新: history.go(0)

     其实: history.go(n)

4. ***location: 封装当前窗口正在打开的url对象
    属性: 
      .href: 获取或设置当前网页打开的url
          何时: 在当前页面打开新链接时
             简写: location.href=url  ->  location=url
      .protocol: 协议
      .host: 主机名+端口号
      .hostname: 主机名
      .port: 端口号
      .pathname: 网页的相对路径
      .hash: #锚点
      .search: ?查询字符串
        鄙视: .search -> 参数组成的对象: 
            ?uname=zhangdong&upwd=123456
            ["uname=zhangdong", "upwd=123456"]
            {uname:zhangdong, upwd:123456}

5. ***navigator: 封装浏览器配置信息的对象
    navigator.cookieEnabled: 是否启用cookie
      cookie: 在客户端本地持久存储一个数据的文件
          如果禁用无法保存搜索关键词,或记住密码

    navigator.plugins: 封装所有插件对象的集合
      
    判断浏览器的名称和版本: 
    navigator.userAgent: 保存浏览器内核,名称,版本号的字符串

6. ****event
   事件: 浏览器自己触发的或用户手动触发的页面(元素)状态的改变。
   浏览器在事件发生时,都会自动调用事件处理函数
   事件处理函数: 当节点发生事件时,自动调用的函数
                          其实就是节点的onxxx属性
      事件处理函数的值,都是一个函数对象
      事件发生时: 节点对象.onxxx();
         事件处理函数中的this: .前的节点对象

   何时: 只要希望一个元素/节点,能够响应某个事件时
               在发生某个事件时,能自动执行事件处理函数
   如何: 3种方式:
      1. 在html元素开始标签中: 
        html: <ANY on事件名="js语句(this)"
        js: function 函数(ANY){ ... }
        问题: 1. 无法为动态生成的元素绑定事件
                 2. 事件绑定分散在页面各个角落,不便于维护
      2. 在js中绑定事件: 2种方式: 
        1. ANY.on事件名=function(){
                 this->ANY
            }
            事件发生时,自动执行: ANY.onXXX();
           问题: 每个ANY的一个事件处理函数,只能绑定一个函数对象。
           解决: 
        2. ANY.addEventListener("事件名",fn)
              ANY.removeEventListener("事件名",fn)
           如果只是添加事件监听,可用匿名函数
           如果可能移除某个处理函数,就必须用有名的函数绑定
           IE8: ANY.attachEvent("on事件名",fn)

           其实: addEventListener("事件名",fn,capture)
               capture: 是否在捕获阶段就提前触发     
                   默认false: 所有事件处理函数都在冒泡阶段反向触发
                   true: 该事件会在捕获阶段就提前触发! 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BOM详解 的相关文章

  • DOM介绍BOM

    DOM介绍 D xff08 文档 xff09 可以理解为整个Web加载的网页文档 xff0c O xff08 对象 xff09 可以理解为类似window对象只来的东西 xff0c 可以调用属性和方法 xff0c 这里我们说的是docume
  • javascript BOM

    一 什么是BOM xff1a BOM xff08 Browser Object Model xff09 的意思是浏览器对象模型 BOM方法一般指的都是在浏览器 xff08 window xff09 中的方法 二 常见的BOM方法 事件 xf
  • OrCAD 导出 BOM 表

    BOM 表简介 BOM表是什么呢 xff1f 它的全称 xff08 Bill Of Material xff09 即物料清单的意思 顾名思义 xff0c 一个产品的BOM说明了这个产品总共需要多少零配件来组装 所有的PCBA制造商都需要根据
  • vs2022文件自动保存为utf-8-bom格式方法

    使用 EditorConfig 可以让VS保存的文件默认编码为UTF 8 bom格式 更多信息查看微软文档 root span class token operator 61 span span class token boolean tr
  • 黑马JavaScript核心操作BOM与DOM课程笔记2-事件高级

    目标 xff1a 能够写出元素注册事件的两种方式 能够说出删除事件的两种方式 能够说出 DOM 事件流的三个阶段 能够利用事件对象完成跟随鼠标案例 能够封装阻止冒泡的兼容性函数 能够说出事件委托的原理 能够说出常用的鼠标和键盘事件 1 注册
  • JavaScript:操作 BOM 和 DOM

    浏览器说明 由于JavaScript的出现就是为了能在浏览器中运行 xff0c 所以 xff0c 浏览器自然是JavaScript开发者必须要关注的 目前主流的浏览器分这么几种 xff1a IE 6 11 xff1a 国内用得最多的IE浏览
  • JavaScript高级使用(对象、BOM、封装)

    JavaScript高级 今天给大家介绍以下几个内容 xff1a JavaScript 面向对象JavaScript 内置对象JavaScript BOMJavaScript 封装 JavaScript面向对象 其实JavaScript中的
  • BOM详解

    1 BOM 什么是 Browser Object Model 专门操作浏览器窗口的API 没有标准 DHTML对象模型 window 2个角色 1 代替global作为全局作用域对象 所有全局函数和全局变量都是window的成员 2 封装所
  • JS中~Dom和Bom方法汇总

    var newNode 61 document createElement 34 div 34 创建一个元素节点 var textNode 61 document createTextNode 34 hello world 34 创建一个文
  • Altium designer 10导出BOM

    摘自 xff1a https jingyan baidu com article 9faa7231f2fb76473d28cb7a html
  • AD19导出bom表的方法(按照元件不同数值分类,重点信息突出)

    我画电路图用的是AD19的软件 xff0c 最后板子画好了要进行元器件采购要生成bom表 xff0c 查了一下相关的资料 xff0c 总结整理一下 xff1a 1 在报告 xff08 report xff09 打开Bill of Mater
  • AD10 BOM制作

    首先在原理图文件点击 xff1a Reports gt Bill of Meterials 然后作如下操作 xff1a 选择上value xff0c 并把他作为分组依据 xff1a 把Comment这个列去掉 xff0c 这个是元件注释列
  • altium designer导出bom表和贴片图

    altium designer的简单使用 xff0c 做一下记录 1 导出bom表 xff0c https jingyan baidu com article cb5d6105133e8f005c2fe0fe html 2 导出贴片图 xf
  • AD生成bom表

    1 Report Bill of material 2 可通过点击右侧的Columns xff0c 更改导出属性 3 点击Preview 查看生成的excel文件 4 生成的 excel文件 注 xff1a 出bom表的原理图需要在工程里
  • AD BOM表导出

    AD BOM表导出 在REPOERT下选择bill of materials 即进行BOM输出 输出操作网上有许多教程 xff0c 这里不进行叙述 xff0c 只提一下 xff0c 必须将Value选择打钩并上拉到展示纵队中 制作自己的模板
  • Altium Designer 生成 BOM(Bill of Material)

    画好图后 xff0c 生成 BOM xff08 Bill of Material xff09 xff1a 1 选择 Reports xff08 报告 xff09 gt gt Bill of Materials 材料清单 2 选择BOM表表头
  • 关于C#使用XMLDocument生成XML文档时,UTF-8编码的BOM问题

    XmlSerializer 的序列化 默认指定 编码 xmlWriterSettings Encoding 61 Encoding UTF8 这种编码是带bom标记位 BOM byte order mark 字节顺序标记 的 改为 xff1
  • 东风汽车股份有限公司MES实施案例

    一 项目背景 东风汽车股份有限公司 以下简称DFAC 汽车分公司是 东风汽车 生产东风系列轻型商用车的主要分公司 于1993年10月奠基 公司占地面积24万平方米 工业建筑面积12 2万多平方米 拥有完整的冲压 焊装 涂装 总装四大生产工艺
  • Javascript之BOM与DOM讲解

    文章转载自 https blog csdn net qq877507054 article details 51395830 一 Javascript组成 JavaScript的实现包括以下3个部分 ECMAScript 核心 描述了JS的
  • cadence OrCAD原理图输出-pdf文件和bom表

    软件版本 16 6 一 输出pdf文件 生成pdf文件前 需要首先安装好pdf虚拟打印机 在打印时选择pdf打印机即可 在项目管理中 选择dsn文件 主菜单file gt print 选项 出现打印机对话框 默认 scale to pape

随机推荐

  • Ubuntu挂载硬盘

    Ubuntu挂载硬盘 1 查看磁盘信息命令 fdisk l 2 查看硬盘的UUID命令sudo blkid 3 mkdir创建挂载点WorkpaceP2和WorkpaceP2 4 永久性挂载分区 xff0c 修改分区文件 xff0c 输入如
  • FreeRTOS——创建任务

    FreeRTOS的设计小巧且简易 xff0c 整个核心代码只有3到4个C文件 xff0c 为了让代码容易阅读 移植和维护 xff0c 大部分的代码都是以C语言编写 xff0c 只有一些函数 xff08 多数是架构特定排班副程序 xff09
  • QT二次开发Kvaser

    前言 最近工作中需要自己去开发一个上位机 xff0c 上位机的通讯方式是CAN xff0c 利用Kvaser将CAN信息传递到上位机 xff0c 所以就需要二次开发Kvaser xff0c 保证上位机的正常通讯 原本是本着前人栽树 xff0
  • Ubuntu 安装ROS (解决rosdep init 失败)

    当前网络上有很多的ROS安装教程 xff0c 但是由于国内的网络问题 xff0c 所以在教程进行到rosdep init时 xff0c 会出现问题 xff0c 所以这篇博客主要解决这个问题 xff0c 以下为教程全部内容 xff1a 引用教
  • Ubuntu20.04部署编译LVI-SAM

    该动图来自LVI SAM开源地址 xff08 https github com TixiaoShan LVI SAM xff09 1 写在开头 1 1 为何诞生此文 近期在学习SLAM相关知识 xff0c 拜读了此篇经典论文LVI SAM
  • QT中的强制类型转换

    当使用C语言那种形式的强制转换 xff0c 发现QT会给出一个使用旧的方式的警告 所以在QT中使用如下类型转换 xff0c 就不会有警告 xff0c 而且这种方式的强制转换更加的安全 xff08 1 xff09 dynamic cast l
  • QT之QCharts的使用(绘制折线图)

    一 画折线图 1 修改 pro文件 在里面添加QT 43 61 charts 2 MyWidget h程序 ifndef MYWIDGET H define MYWIDGET H include lt QWidget gt 添加以下三个头文
  • 恢复经过软件处理过的U盘导致的U盘空间显示不正确等问题

    1 win 43 R xff0c 打开运行 xff0c 输入CMD xff0c 点击确定 2 在命令行中输入DISKPART并回车 xff0c 会跳出一个窗口 xff0c 这就进入了diskpart 3 在跳出的窗口diskpart 中输入
  • 关于STM32 CAN 发送失败问题解释

    首先解释一下CAN几个配置的功能 xff1a 1 CAN InitStruct CAN TTCM 61 DISABLE 这个只在某些CAN标准中使用 xff0c 就设置为DISABLE 2 CAN InitStruct CAN ABOM 6
  • VS2022调试vector无法显示详细信息

    使用vs2022调试vector发现这样的现象 xff1a 为了显示vector大小以及详细的元素 xff0c 需要编写natvis文件 span class token operator lt span span class token
  • STM32H7 PVD断电的使用

    1 遇到的问题 我使用的是STM32H747 xff0c 在初始化后发现断电后并没有进入中断 最后查找到因为STM32H747是双核CPU xff0c 在HAL库源码中 xff0c 有双核的宏定义将一些配置给屏蔽了 xff0c 因为我只用到
  • STM32H7A3 ADC+DMA使用问题

    问题1 xff1a DMA采用半字传输16位ADC值 xff0c 用于存储ADC数据的数组一定是采集数的两倍 xff0c 否则会产生ADC溢出的错误中断HAL ADC ErrorCallback xff0c 从而无法进入ADC采集完成中断H
  • STM32使用RTOS BootLoader跳转app进入异常中断问题

    一 问题描述 在boot中不使用RTOS xff0c 跳转到APP中 xff0c APP可以正常运行 但是boot中使用RTOS跳转到APP中 xff0c 程序配置完时钟后就会进入MemManage Handler错误中断 二 解决方法 1
  • STM32H7 SPI+DMA只发送一次,然后一直报busy的问题

    网上看了很多讲SPI 43 DMA问题的帖子 xff0c 有说必须发送DMA和接收DMA必须同时配置的 xff0c 有的说DMA发送前需要手动调用HAL SPI Abort函数的 首先我尝试的同时配置发送DMA和接收DMA xff0c 还是
  • STM32 EventRecorder printf不打印输出在调试窗口的问题解决

    一 添加event recorder到工程中 也可以自己移植源码到工程里面 xff0c 添加好后 xff0c 工程中会多出几个文件 xff0c 如下图所示 xff0c 我这是自己移植的源码到工程中的 xff0c 没有使用keil添加 二 初
  • linux只W25Q256驱动,使用m25p80,支持w25q系列nor flash

    1 内核编译选项增加 1 xff09 Device Drivers Memory Technology Device MTD support gt 2 Device Drivers Memory Technology Device MTD
  • STM32f103时钟系统简介

    主要是讲解怎么看懂这个图 一 内置RC振荡器 xff08 HSI RC xff09 频率是约为8MHz xff0c 因为其频率不是很稳定 其可作为系统时钟的一个选项 二 晶振振荡器 xff08 HSE OSC xff09 从图中可以看到其是
  • Keil软件仿真

    首先就是配置上面图中的debug xff0c 选择软件仿真 然后是选择芯片 xff0c 根据自己的硬件芯片选择 8号标注是进入该图中的debyg模式 1号标注 xff1a 这个是一个RST按钮 xff0c 和硬件一样是复位的功能 2号标注
  • STM32F103系列NVIC中断优先级分组讲解

    一 简介 CM3内核支持256个中断 xff0c 16个内核中断 xff0c 240个外部中断 xff0c 并且拥有256级的可编程中断设置 但是STM32只用到了CM3内核的一部分 xff0c STM32有84个中断 xff0c 包括16
  • BOM详解

    1 BOM 什么是 Browser Object Model 专门操作浏览器窗口的API 没有标准 DHTML对象模型 window 2个角色 1 代替global作为全局作用域对象 所有全局函数和全局变量都是window的成员 2 封装所