js BOM详解

Browser object model 浏览器对象模型

BOM 比 DOM 更大,它包含 DOM

它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window

alert()、prompt() 等函数都是window全局对象下的方法,window可以省略不写

本篇介绍一些DOM中常用的接口(方法)

定时器

定时器又叫间歇函数,可以理解为延迟执行函数

setTimeout

当指定时间到达,代码执行一次并结束

// 开启定时器
// 参数1:执行的函数;参数2:延迟的时间(毫秒)
// 返回值:定时器开启次数
setTimeout(function(){
	console.log('1s后执行')
},1000)
// 清除定时器(需要给定时器命名)
let timer = setTimeout(function(){
    console.log('1s后执行')
},1000)
// clearTimeout方法清除
clearTimeout(timer);
SetInterval

每隔一段时间,执行一次函数

// 开启定时器
// 参数1:执行的函数;参数2:延迟的时间(毫秒)
// 返回值:定时器开启次数
setInterval(function(){
	console.log('每隔1s执行一次');
},1000)
// 清除定时器(需要给定时器命名)
let timer = setInterval(function(){
	console.log('1');
},1000)
// clearInterval方法清除
clearInterval(timer);

location

location对象存储与地址相关的信息

属性/方法说明
location.href返回完整地址
location.search返回参数 (地址?后的参数)
location.hash返回哈希值(地址#后的参数)
location.reload()刷新页面(传参true为强制刷新)
location.hostname返回主机的域名
location.pathname返回当前页面的路径和文件名
location.port返回主机的端口
location.protocol返回所使用的 web 协议(http: 或 https:)
// 举例:https://www.baidu.com/?age=10#aaa

location.href        'https://www.baidu.com/?age=10#aaa'
location.search      '?age=10'
location.hash        '#aaa'
location.hostname    'www.baidu.com'
location.pathname    '/'
location.port        ''
location.protocol    'https:'

navigator

navigator对象存储与浏览器相关的信息

navigator.userAgent返回一个字符串,包含浏览器版本与平台信息
navigator.language返回一个字符串,表示用户当前偏好语言
navigator.cookieEnabled返回一个布尔值,表示当前浏览器是否启用cookie

navigator.clipboard

返回一个对象,包含剪切板内容
navigator.geolocation返回一个对象,包含设备的位置信息
navigator.userAgent        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
navigator.language         'zh-CN'
navigator.cookieEnabled    true

获取用户剪切板内容

// <div>复制我</div>
const box = document.querySelector('div');
// data就是用户复制的内容
box.oncopy = function () {
    const obj = navigator.clipboard;
    obj.readText().then(
        function(data){
            console.log(data)    
        },
        function(err){
            console.log('用户拒绝访问剪切板')
        })

    // 可以使用writeText方法来修改剪切板内容
    obj.writeText(123)
}

获取地理位置 

PC的定位是由IP地址决定,位置会偏差

// <div>点击我获取坐标</div>
var box = document.querySelector('div');
box.onclick = function () {
    navigator.geolocation.getCurrentPosition(fun, error);
}
function fun(position) {
    console.log("Latitude(纬度): " + position.coords.latitude)
    console.log("Longitude(经度): " + position.coords.longitude)
}
function error(err) {
    switch (err.code) {
        case err.PERMISSION_DENIED:
            console.log("用户不允许地理定位");
            break;
        case err.POSITION_UNAVAILABLE:
            console.log("无法获取当前位置");
            break;
        case err.TIMEOUT:
            console.log("获取位置超时");
            break;
        case err.UNKNOWN_ERROR:
            console.log("未知的错误");
            break;
    }
}

history

用于浏览器页面的前进和后退

history.forwrad()前进
history.back()后退
history.go(1)1等于前进1次,-2等于后退2次

后退一次 

// <div>后退</div>
const box = document.querySelector('div');
box.onclick = function(){
    history.back();
}

本地存储

将数据存储在浏览器中,一般用来存储验证密钥、账号等等

Edge浏览器的本地存储界面

以键值对的形式存储

localStorage

本地存储:永久存储,存储5M-10M以内的数据(字符串)

// 参数1:密钥名(键)
localStorage.setItem('user','张三'); // 存储数据('张三'为密钥的值)
localStorage.getItem('user');		// 查询数据
localStorage.removeItem('user');	// 删除数据
sessionStorage

会话存储:关闭浏览器时删除

sessionStorage.setItem('user', '张三'); // 存储数据
sessionStorage.getItem('user');		   // 查询数据
sessionStorage.removeItem('user');	   // 删除数据

MDN文档:Web API 接口参考 | MDN (mozilla.org)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值