Web前端 Javascript笔记6

BOM 

前面的笔记讲的都是DOM(文档对象模型),DOM几乎被所有浏览器支持,是DOM的作用为操作HTML文档的重要手段。利用DOM可以对HTML文档中的所有元素,节点进行获取与访问,对标签属性与样式进行设置。 下面是一棵DOM树。

不过,这次要讲的是BOM(浏览器对象模型)

  • 在实际开发中,JavaScript经常需要操作浏览器窗口的控件,实现用户与页面的动态交换。bom可以访问与操作浏览器的控件。
  • BOM 的核心对象是 window,它表示浏览器的一个实例。window对象是JavaScript结构的顶层,对于每个打开的窗口,系统都会自动为其定义 window 对象。也就是每一个窗口就是一个window对象。
  • BOM对象指的就是window对象和它的所属子对象history、location、navigator、screen、document等对象。

1、history对象

BOM提供的history对象(历史记录跳转),可以在用户在浏览器中访问的URL历史记录进行操作。

我们做两个简单的网页

history.forward()=history.go(1):前进

history.back()=history.go(0):后退

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        h1{
            display:block;
            color: blue;
            font-Weight:600;
            margin: 0 auto;
            height: 100px;
            width: 300px;
        }
    </style>
</head>
<body>
    <button>前进</button>
    <button>后退</button>
    <a href="第二个网页.html">点击一下去这个页面</a>
    <h1>第一个网页</h1>
    <script>
        const b=document.querySelectorAll("button")
        b[0].onclick=()=>{
            history.go(1)
        }
        b[1].onclick=()=>{
            history.go(0)
        }
    </script>
</body>
</html>
<!DOCTYPE html>
    <meta charset="UTF-8">    <title>Document</title>
    <style>
        h1{
            display:block;
            color: blue;
            font-Weight:600;
            margin: 0 auto;
            height: 100px;
            width: 300px;
        }
    </style>
</head>
<body>
    <button>前进</button>
    <button>后退</button>
    <a href="第一个网页.html">点击一下去这个页面</a>
    <h1>第222222个网页</h1>
</body>
<script>
    const b=document.querySelectorAll("button")
    b[0].addEventListener("click",()=>{
        history.forward()
    })
    b[1].addEventListener("click",()=>{
        history.back()
    })

</script>
</html>

1.1、 pushState()与replace()方法

用来在浏览历史中添加与修改记录

pushState(state,title[,url])

replaceState(state,title[,url])

state表示一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数,若不需要这个对象,可以填入null或者空字符串;URL表示新的网址,必须与当前页面处在同一个域中。方法执行后,浏览器的地址栏将显示最后添加或者修改的网址。

 <style>
        h1{
            display:block;
            color: blue;
            font-Weight:600;
            margin: 0 auto;
            height: 100px;
            width: 300px;
        }
    </style>

<body>
    <button>前进</button>
    <button>后退</button>
    <a href="第一个网页.html">点击一下去这个页面</a>
    <h1>第222222个网页</h1>
</body>
<script>
    const b=document.querySelectorAll("button")
    b[0].addEventListener("click",()=>{
        history.forward()
        history.pushState(null,null,"?a=嘿嘿嘿22222")
    })
    b[1].addEventListener("click",()=>{
        history.back()
        history.replaceState(null,null,"?a=happpppy哈哈哈")
    })
</script>


 

2、navigator对象

navigator对象提供提供有关浏览器的信息。

属性说明
appCodeName返回浏览器的代码名
appName返回浏览器的名称
appVersion返回浏览器的平台和版本信息
cookieEnable返回指明浏览器中是否启用 cookie 的布尔值
platForm返回运行浏览器的操作系统平台
userAgent返回由客户机发送服务器的user-agent 头部的值
geolocation返回浏览器的地理位置信息
languge返回浏览器使用的语言
onLine返回浏览器是否在线,在线返回 ture,否则返回 false
product返回浏览器使用的引擎(产品)

随便去找一个浏览器,然后进入控制台

<body>
 <a href="https://www.python.org/">点击一下去这个去python</a>
</body>

方法说明
javaEnabled() 返回布尔值,该值指示浏览器是否启用了 Java。
<!DOCTYPE html>
<html>
<body>
<p ></p>
<script>
let java = navigator.javaEnabled();
document.querySelector("p").innerHTML = "Java 启用:" + java;
</script>
</body>
</html>


 

3、location对象

location可以改变当前用户在浏览器访问的URL

//location.reload()//强制刷新

强制刷新每个1秒执行一次  

 <script>
        setTimeout(()=>{
            location.reload()//强制刷新
        },1000)
</script>

//location.href='https://www.baidu.com'//跳转页面 

<script>
        setTimeout(()=>{
            location.href='https://www.baidu.com'//跳转页面
        },3000) 
</script>

hash返回一个URL的锚部分
host返回一个URL的主机名和端口
hostname返回URL的主机名
href返回完整的URL
pathname返回的URL路径名。
port返回一个URL服务器使用的端口号
protocol返回一个URL协议
search返回一个URL的查询部分
<body>
    <a href="https://blog.csdn.net/cycyzh/article/details/137757006?spm=1001.2014.3001.5502#test"></a>
    <script>
        let a = document.querySelector('a');
        console.log(a.href);      
        console.log(a.protocol);  
        console.log(a.host);     
        console.log(a.hostname); 
        console.log(a.port+"(输出为空 - https 默认端口为 443)"); 
        console.log(a.pathname);
        console.log(a.search);   
        console.log(a.hash);      
        console.log(a.origin);    
    </script>
</body>

 


 

4、screen对象

返回当前客户端屏幕相关的属性信息,比如屏幕的宽度高度

availHeight返回屏幕的高度(不包括Windows任务栏)
availWidth返回屏幕的宽度(不包括Windows任务栏)
colorDepth返回目标设备或缓冲器上的调色板的比特深度
height返回屏幕的总高度
pixelDepth返回屏幕的颜色分辨率(每象素的位数)
width返回屏幕的总宽度
<script>
    console.log("屏幕的高度(不包括Windows任务栏)="+screen.availHeight)
    console.log("屏幕的宽度(不包括Windows任务栏)="+screen.availWidth)
    console.log("屏幕的总高度="+screen.height)
    console.log("屏幕的总宽度="+screen.width)
    console.log("屏幕的颜色分辨率="+screen.pixelDepth)
    console.log("设备或缓冲器上的调色板的bit深度="+screen.colorDepth)
    </script>

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值