首页 > 其他分享 >BOM是什么

BOM是什么

时间:2024-06-05 12:00:14浏览次数:28  
标签:窗口 什么 像素 window 窗体 BOM 浏览器 属性

BOM(Browser Object Model)

img

#一、是什么

BOM (Browser Object Model),浏览器对象模型,提供了独立于内容与浏览器窗口进行交互的对象

其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退,前进,刷新,浏览器的窗口发生变化,滚动条的滚动,以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率

浏览器的全部内容可以看成DOM,整个浏览器可以看成BOM。区别如下:

01

#二、window(浏览器窗口)

Bom的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,即是浏览器窗口的一个接口,又是全局对象

因此所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法。浏览器窗口对象,主要属性有:

  • name:指浏览器窗口的名字或框架的名字。这个名字是给a标记的target属性来用的。设置窗口的名字:window.name = "newWin" 获取窗口的名字:document.write(name);
  • top:代表最顶层窗口。如:window.top
  • parent:代表父级窗口,主要用于框架。
  • self:代表当前窗口,主要用于框架中。
  • innerWidth:指浏览器窗口的内宽(不含菜单栏、工具栏、地址栏、状态栏),该属性chrome支持。
  • innerHeight: 指浏览器窗品的内高(不含菜单栏、工具栏、地址栏、状态栏),该属性chrome支持。
var name = 'js每日一题';
function lookName(){
  alert(this.name);
}

console.log(window.name);  //js每日一题
lookName();                //js每日一题
window.lookName();         //js每日一题

window方法:

  • alert():弹出一个警告对话框。
  • prompt([text],[defaulttext]):弹出一个输入对话框。
  • confirm(text):弹出一个确认对话框。如果单击“确定按钮”返回true,如果单击“取** 消”返回false。 text:要显示的纯文本
  • close():关闭窗口
  • print():打印窗口
  • open([url],[name],[options]):打开一个新窗口
  • 延时器:window.setTimeout("code",1000);// code一般是一个函数,但是放在双引号下,1000ms,返回值是延时器的id,给clearTimeout使用
  • 定时器:window.setInterval("code",1000);// code一般是一个函数,但是放在”“下,1000ms,返回值是定时器的id,给clearInterval使用

关于窗口控制方法如下:

  • moveBy(x,y):从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体
  • moveTo(x,y):移动窗体左上角到相对于屏幕左上角的(x,y)点
  • resizeBy(w,h):相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。如果参数为负值,将缩小窗体,反之扩大窗体
  • resizeTo(w,h):把窗体宽度调整为w个像素,高度调整为h个像素
  • scrollTo(x,y):如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置
  • scrollBy(x,y): 如果有滚动条,将横向滚动条向左移动x个像素,将纵向滚动条向下移动y个像素

window.open() 既可以导航到一个特定的url,也可以打开一个新的浏览器窗口

如果 window.open() 传递了第二个参数,且该参数是已有窗口或者框架的名称,那么就会在目标窗口加载第一个参数指定的URL

window.open('htttp://www.vue3js.cn','topFrame')
==> < a href=" " target="topFrame"></ a>

window.open() 会返回新窗口的引用,也就是新窗口的 window 对象

const myWin = window.open('http://www.vue3js.cn','myWin')

window.close() 仅用于通过 window.open() 打开的窗口

新创建的 window 对象有一个 opener 属性,该属性指向打开他的原始窗口对象

#三、location

url地址如下:

http://foouser:[email protected]:80/WileyCDA/?q=javascript#contents

location属性描述如下:

属性名例子说明
hash "#contents" utl中#后面的字符,没有则返回空串
host www.wrox.com:80 服务器名称和端口号
hostname www.wrox.com 域名,不带端口号
href http://www.wrox.com:80/WileyCDA/?q=javascript#contentsopen in new window 完整url
pathname "/WileyCDA/" 服务器下面的文件路径
port 80 url的端口号,没有则为空
protocol http: 使用的协议
search ?q=javascript url的查询字符串,通常为?后面的内容

除了 hash之外,只要修改location的一个属性,就会导致页面重新加载新URL

location.reload(),此方法可以重新刷新当前页面。这个方法会根据最有效的方式刷新页面,如果页面自上一次请求以来没有改变过,页面就会从浏览器缓存中重新加载

如果要强制从服务器中重新加载,传递一个参数true即可

#四、navigator(浏览器属性)

navigator 对象主要用来获取浏览器的属性,区分浏览器类型。属性较多,且兼容性比较复杂

下表列出了navigator对象接口定义的属性和方法:

02

03

  • appName:浏览器软件名称,主要用来判断客户使用的是什么核心的浏览器。如果是IE浏览器的话,返回值为:Microsoft Internet Explorer,如果是Firefox浏览器的话,返回值为:Netscape
  • appVersion:浏览器软件的核心版本号。
  • systemLanguage:系统语言
  • userLanguage:用户语言
  • platform:平台

#五、screen(显示器屏幕)

保存的纯粹是客户端能力信息,也就是浏览器窗口外面的客户端显示器的信息,比如像素宽度和像素高度

04

  • Width:屏幕的宽度,只读属性。
  • Height:屏幕的高度,只读属性。
  • availWidth:屏幕的有效宽度,不含任务栏。只读属性。
  • availHeight:屏幕的有效高度,不含任务栏。只读属性。

#六、history(浏览历史)

history对象主要用来操作浏览器URL的历史记录,可以通过参数向前,向后,或者向指定URL跳转

常用的属性如下:

  • history.go()

接收一个整数数字或者字符串参数:向最近的一个记录中包含指定字符串的页面跳转,

history.go('maixaofei.com')

当参数为整数数字的时候,正数表示向前跳转指定的页面,负数为向后跳转指定的页面

history.go(3) //向前跳转三个记录
history.go(-1) //向后跳转一个记录
  • history.forward():向前跳转一个页面
  • history.back():向后跳转一个页面
  • history.length:获取历史记录数

标签:窗口,什么,像素,window,窗体,BOM,浏览器,属性
From: https://www.cnblogs.com/huan1026/p/18232745

相关文章

  • 为什么MySQL的information_schema.tables字段index_length显示为0?
     为什么MySQL的information_schema.tables字段index_length显示为0? 测试版本为:MySQL社区版8.0.36 分情况1:innodb引擎的表是索引组织表,按照主键进行顺序存放。则表是索引,索引是表,index_length不会有值。如下,创建一个表,并追加主键,查看索引情况。(root@localhost11:02:2......
  • Python怎么样, Python能做什么,可以自学Python吗?最全面Python教程
    短时间掌握一门技能是现代社会的需求。生活节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃慢鱼的时代,人的时间比机器的时间更值钱。Python作为一种轻量级编程语言,语言简洁开发快,没那么多技巧,受到众多追捧。如今,Pyhon越来越火,屡次超越Java、C++成为编程语言排行榜第一的语言,国内的......
  • 什么是最大似然法(估计)?(大白话解释定义,三分钟学会)
    最大似然法是干嘛的?        假如我现在有一组数据,我知道它们是符合某个概率分布的,但是里面的参数我不知道,那我肯定得想个办法把里面的参数给弄出来,这样才能用这个分布去做一些事情,但是具体怎么去弄出来呢,哎,最大似然函数就是搞这个的,简单一句话,最大似然函数就是利用现......
  • Varnish讲解文章、缓存代理配置、核心功能、优势、Varnish在什么情况下会选择缓存哪些
    varnish官网链接Varnish文章概览Varnish是一款高性能的HTTP加速器(web应用加速器),是一款开源软件,它能够显著提高网站的响应速度和减少服务器的负载。Varnish的设计理念是利用缓存技术,将频繁访问的静态内容存储在内存中,以便快速响应用户请求。这种方式可以避免每次都从原始服务......
  • tcp server 为什么需要 accept
     在TCP协议中,服务器端建立连接的过程分为几个步骤,其中accept操作起到了关键作用,具体原因包括: 1.连接管理:当一个TCP客户端发起连接请求时,它会向服务器发送一个SYN(同步)包,开始三次握手过程。服务器通过监听socket接收到这个SYN包后,会回复一个SYN-ACK(同步-确认)包。......
  • dsp开发与arm开发有什么区别,应用差别
    一、DSP开发与ARM开发的区别DSP(DigitalSignalProcessor)和ARM(AdvancedRISCMachine)是两种不同类型的处理器,它们在设计理念、应用领域、指令集架构、性能特点等方面有所区别。设计理念和应用领域DSP:主要用于数字信号处理,如音频、视频、通信和图像处理等领域。它具有高性能......
  • _weak c语言在实际使用中有什么核心作用
    C语言中__weak关键字的核心作用在C语言中,__weak关键字通常用于声明弱符号,它允许在链接阶段出现多个同名函数的情况下,选择性地指定某个函数具有较低的优先级。如果在代码中使用了__weak修饰的函数,并且在链接时没有找到其他同名的强符号函数,那么编译器会自动链接到这个弱符号函......
  • 什么是比特币?对于风靡全球的比特币,你是否好奇过它到底是什么原理?
    文章目录一、什么是比特币二、什么是挖矿?三、什么是去中心化四、什么是区块链?五、比特币与区块链的关系?六、部分技术展示Go语言实现pow协议举例说明Golang实现PoW协议一、什么是比特币比特币是由一系列概念和技术作为基础构建的数字货币生态系统。狭义的“比特......
  • javaScript高级23_BOM2
    一、概念BrowserObjectModel浏览器对象模型将浏览器的各个组成部分封装成对象。 二、组成Window:窗口对象Navigator:浏览器对象Screen:显示器屏幕对象History:历史记录对象Location:地址栏对象  三、Window:窗口对象1、创建2、方法1.与弹出框有关的......
  • ssl证书安全认证的原理是什么?
    SSL证书安全认证的原理是什么?SSL证书是一种数字安全证书,由受信任的CA机构验证身份后颁发,可以对数据传输进行加密以及对服务器进行身份验证。在配置SSL证书后,网站地址栏会显示“https://”开头,同时显示安全锁标志或绿色地址栏,这表示该网站已经通过了权威的第三方CA机构认证,用户可......