浏览器对象模型
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上面的方法感觉很少使用啊,用的多的也就是location和history吧!其他的screen、navigator感觉基本都不咋用~~~