🟡JavaScriptBOM
本文最后更新于:2024年4月25日 上午
window对象
窗口位置
🥕位置获取
window.screenTop
,window.screenLeft
显示浏览器应用左上角的位置
🥕位置方法
这些方法可能被浏览器禁用
window.moveTo(x, y)
浏览器左上角移动至(x, y)
window.moveBy(x, y)
浏览器左上角相对当前向左x px
向下y px
窗口大小
🍐大小获取
window.innnerHeight
, window.innerWidth
显示视口大小(不含工具栏,地址栏等.包含滚动条)
window.outerHeight
,window.outerWidth
显示浏览器应用的窗口大小
document.documentElement.clientHeight
,document.documentElement.clientWidth
显示渲染页的大小(不含滚动条)
🍐窗口缩放方法
这些方法可能被浏览器禁用
window.resizeTo(x, y)
缩放到x × y
window.resizeBy(x, y)
缩放至(x+原x) × (y+原y)
视口位置
🍊位置获取
window.scrollX
,window.scrollY
或window.pageXoffset
,window.pageYoffset
显示滚动位置
🍊滚动方法
window.scroll()
window.scrollTo()
window.scrollBy()
链接导航
🌿打开链接
window.open(url)
方法可以打开链接并返回窗口的window
实例
该实例的opener
属性指向打开它的window
实例
1 |
|
浏览器可能弹出警告
🌿目标窗口
window.open
的第二个参数表示打开链接的窗口
可以使用自定义名称,若找不到该名称窗口则新建一个同名窗口
也可使用'_self'
,'_parent'
,'_top'
,'_blank'
1 |
|
🌿特性设置
window.open
的第三个参数接收一个特性字符串配置新窗口设置
1 |
|
浏览器可能禁用特性设置
🌿窗口关闭
close()
可关闭window
实例
1 |
|
当不是在window
实例,而是在window
对象上使用时关闭最新的窗口
部分浏览器不支持关闭非脚本打开的窗口
关闭后window
对象的closed
属性值为true
🌿弹窗屏蔽
被浏览器屏蔽时window.open
返回null
可用此特性判断是否被屏蔽
被屏蔽时也会抛出错误,可用try/catch
精确捕获是否被屏蔽
定时器
🍌setTimeout
setTimeout(f, t[, a, b...])
第一个参数接收一个函数或js
代码的字符串,第二个参数设置t ms
后代码/函数进入消息队列,消息队列为空则立即执行,后面的参数到期时会传给任务函数(字符串不可)
设置时返回一个超时排期ID
,可用clearTimeout(ID)
取消排期
1 |
|
🍌 setInterval
setInterval(f, t[, a, b...])
参数同上,其每隔t ms
就将任务推入消息队列
设置时返回一个超时排期ID
,可用clearInterval(ID)
取消排期
对话框
🍒alert(text)
接收文本,其他类型隐式调用toString()
只有确认键,无返回值,执行期间为同步状态
1 |
|
🍒confirm(text)
接收文本,其他类型隐式调用toString()
有确认/取消键,返回布尔值对应true
/false
(同步执行)
1 |
|
🍒prompt(tips, default)
接收两个文本,其他类型隐式调用toString()
第一个为提示,第二个为默认输入(默认为空)(同步执行)
有输入时返回输入字符串,否则返回null
1 |
|
🍒print()
开启打印(异步执行)
1 |
|
location对象
获取location
对象
1 |
|
属性
属性名 | 属性值 |
---|---|
hash |
URL散列表 |
hostname |
服务器名 |
port |
端口号 |
host |
服务器名及端口号 |
href |
完整的URL |
protocol |
使用协议 |
search |
问号开头的查询字符串 |
username |
用户名 |
password |
密码 |
origin |
URL源地址(只读) |
查询字符串
可使用URLSearchParams
来解析location.search
(自动跳过?
)
1 |
|
has(key)
方法检查是否有key
参数
get(key)
方法返回key
参数的值,没有则返回null
set(key, value)
新增参数
delete(key)
删除参数
实例支持迭代
1 |
|
操作URL
🌶整体修改
后两种写法隐式调用了assign
方法
1 |
|
🌶局部修改
可以通过修改location
的属性来导航
navigator对象
该对象存放了客户端软硬件信息与一些方法,可用来确认浏览器类型
插件检测
plugins
数组存放了浏览器插件
数组元素有以下属性描述插件
name
插件名description
插件描述filename
插件文件名length
插件处理的MIME(媒体类型)数
screen对象
存储了客户端显示器信息
属性
属性 | 属性值 |
---|---|
availHeight |
|
history对象
导航
go(n)
方法用于导航前进或后退
1 |
|
length
属性存储本窗口页面记录总数,URL
或location.hash
改变会增加记录数
🍠语法糖
1 |
|