javascript进阶知识25 - BOM

149 阅读3分钟

浏览器对象模型

window

alert()弹窗:alert('字符串')

confirm()弹窗:confirm('字符串'),有返回值,点击确定返回true,点击取消返回false

prompt弹窗:prompt('字符串','输入框默认值(这个参数不是必须的)'),有返回值,返回值就是你在输入框中输入的字符串。

定时器:

setTimeout(回调函数,时间),只会执行一次。延迟性的操作,时间以ms为单位,1000ms = 1s。属于异步。有返回值,会返回一个id值,可以使用clearTimeout(id)取消这个定时器。

setInterval(回调函数,时间),可以无限次执行,每间隔多少时间就执行一次回调函数。有返回值,会返回一个id值,可以使用clearInterval(id)取消这个定时器。

window.open()可以用于导航到指定的URL,也可以用于打开新浏览器窗口,这个方法接受四个参数:

  • 要加载的URL
  • 目标窗口
  • 特性字符串
  • 新窗口在浏览器历史记录中是否替代当前加载页面的布尔值(不打开新窗口时使用)

location

location.host 主机+端口号 -> 192.168.12.4:8080

location.hostname 没有端口号的主机 -> 192.168.12.4

location.href 完整的url路径(对中文进行编码了) -> http:192.168.12.4:8080/xxxxxxxx

location.pathname 端口号后面的 -> /xxxxxxxxxxxx

location.port 端口号 -> 8080

location.protocol 查看是http协议还是https -> http

location.search 查看参数 -> ?name=xxx&age=xxx

location.hash URL的散列值(#号后跟零或多个字符),如果没有则为空字符串

修改上面的hash、search、hostname、pathname、port都会修改当前的url,但是修改hash不会导致页面重新加载URL(会在浏览器历史记录中增加一条记录,现在vue、react框架使用单页应用程序的原理)

location.replace(url) // 不会产生历史记录

location.reload(),重新加载当前显示的页面(刷新)。可以传递一个布尔值的参数,如果不传参(默认)或者传递false,浏览器可以从缓存中加载,如果传递true,则浏览器强制从服务器重新加载。

navigator

每个浏览的属性都不一样。

常见的方法:

  • navigator.appName 浏览器全名

  • navigator.appVersion 浏览器版本

  • navigator.cookieEnabled 返回布尔值,是否启用了cookie

  • navigator.mediaDevices 返回可用的媒体设备

  • navigator.onLine 返回布尔值,表示浏览器是否联网

  • navigator.plugins 返回浏览器安装的插件数组

    ..............

history

表示当前窗口首次使用以来用户的导航历史记录。history是window的属性。

go(数字)方法可以在用户历史记录中沿任何方向导航,可以前进也可以后退。这个方法接受一个参数,一个整数,表示前进或后退几步。负值表示在历史记录中后退(类似点击浏览器的“后退”按钮),而正值表示在历史记录汇总前进(类似点击浏览器的“前进”按钮)。

history.go(-1);// 后退一页
​
history.go(1); //前进一页
​
history.go(2); // 前进两页

go有两个简写方法:back()forward()

history.back(); //后退一页
​
history.forward); //前进一页

history还有一个属性:length,表示历史记录中的数量,包括可以前进和后退的页面。

screen

浏览器窗口外面的客户端显示器的信息。

  • width 屏幕像素宽度
  • height 屏幕像素高度
  • left 当前屏幕左边的像素距离
  • top 当前屏幕的顶端像素距离 ....

BOM上面的方法感觉很少使用啊,用的多的也就是locationhistory吧!其他的screennavigator感觉基本都不咋用~~~