BOM(浏览器对象模型)

一.BOM概述

BOM用于操作浏览器,例如弹出窗口、刷新页面、后退、前进等。BOM提供的常用对象包括windows对象、location对象、navigator对象等。由于BOM有各个浏览器推出,所以没有统一的标准,不同浏览器支持的对象也略有差异。

二.window对象

window对象是浏览器的顶级对象,表示浏览器的一个实例,DOM的document对象也是window对象的一个属性,所有浏览器都支持window对象,它代表浏览器的窗口 。

1.全局作用域

全局作用域中的变量和函数也都属于window对象的成员,当引用window对象的成员时,可以省略window。

window.document.getElementById("header");
等同于
document.getElementById("header");

2.常用成员

常用属性

属性说明
status状态栏所显示的内容
innerheight窗口大小:工作区高度(不包含滚动条和工具栏)
innerwidth窗口大小:工作区宽度(不包含滚动条和工具栏)
outerheight包含滚动条和工具栏的完整高度
outerwidth包含滚动条和工具栏的完整宽度
screenLeft 、screenTop窗口位置:左上角在屏幕上的X坐标和Y坐标(IE Safari Opera 支持)
screenX 、screenY窗口位置:左上角在屏幕上的X坐标和Y坐标(Firefox和Safari支持 )
pageXOffset、pageYOffset页面向杜宇窗口显示区左上角的x坐标和y坐标
<script>
var w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

var h = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight; 
</script>

screen对象

screen.width 屏幕宽度
screen.height 屏幕高度
screen.availWidth 访问者屏幕的宽度,以像素计,减去诸如窗口工具条之类的界面特征。

screen.availHeight访问者屏幕的高度,以像素计,减去诸如窗口工具条之类的界面特征。

实例
screen.colorDepth显示一种颜色的比特数。
screen.pixelDepth属性返回屏幕的像素深度。

window对象的常用方法

属性说明
open()打开一份新的浏览器窗口
close()关闭浏览器窗口
alert()显示警告框:包含一段信息和一个确认按钮
prompt()显示对话框:可以提示用户输入
confirm()显示对话框:包含一段消息,确认和取消按钮
<script>
let myWin=window.open();
alert("hhhhh");
prompt("请输入");

在这里插入图片描述
在这里插入图片描述

事件

window对象常包括onload、upload、onscroll、onresize等,分别在页面加载完成后、页面卸载完成后、页面滚动、页面大小变化触发。

onload事件可用于初始化,而且有些JavaScript代码往往需要在文档加载完成后才能够去执行,onload则可以解决这些问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box{
            width:100px;
            height:100px;
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <div id="box"></div>
    <!-- <script>
        var box=document.getElementById("box");
        box.style.background="red";
    </script>//用此种方法智能将script写在后面
     -->
     <script>
        window.onload=function()
        {
            var box=document.getElementById("box");
        box.style.background="red";//这种方式就可以把script放在任意一个位置
        }
     </script>
    </body>
</html>

该方法的应用:用于实现瀑布流图片显示。

定时器

定时器常用语动画效果,浏览器提供了几种定时器属性

属性说明
setTimeout()达到指定时间时,执行一次某段代码
clearTimeout()取消由setTimeout()方法设置的定时器
setInterval()每隔一段时间,重复执行某段代码
clearInterval()取消由setInterval()方法设置的定时器

通过setTimeOut(函数名,时间)的方式,到达指定时间时,调用一次函数,时间单位为毫秒

<script>
let say=setTimeout(say,3000);
function say(){
alert("hhhhh");
}
</script>

setInterval()可以用于制作简单的轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width:500px;
            height:400px;
            margin: 0 auto;
            text-align: center;
        }
    </style>
</head>
<body>
    <div>
    <img id="myBox" src="1.jpg" width:100%>
    <button id="ok">手动切换</button>
    </div>
    <script>
        window.onload=next;
        var box=document.getElementById("myBox");
        var ok=document.getElementById("ok");
        ok.onclick=next;
        setInterval(next,3000);
        var i=1;
        function next(){
            i++;
            box.src=i+".jpg";
            if(i==10)
            {
                i=0;
            }
        }
    </script>
</body>
</html>

在这里插入图片描述

location对象

  • window.location.href 返回当前页面的 href (URL)
  • window.location.hostname 返回 web 主机的域名
  • window.location.pathname 返回当前页面的路径或文件名
  • window.location.protocol 返回使用的 web 协议(http: 或 https:)
  • window.location.assign 加载新文档
  • window.location.port 端口号

history 对象

成员功能
length当前窗口浏览历史列表的数量
back()后退,相当于单击浏览器“后退按钮”
forward()前进,相当于按浏览器的“前进按钮”
go()跳转

navigator对象

navigator对象包含了浏览器的相关信息

前面可以不带window

  • navigator.appName属性返回浏览器的应用程序名称
  • navigator.appCodeName属性返回浏览器的应用程序代码名称
  • navigator.platform属性返回浏览器平台(操作系统)

警告!!!
来自 navigator 对象的信息通常是误导性的,不应该用于检测浏览器版本,因为:

不同浏览器能够使用相同名称 导航数据可被浏览器拥有者更改 某些浏览器会错误标识自身以绕过站点测试 浏览器无法报告发布晚于浏览器的新操作系统

三·总结

学习了BOM之后可以让我们的网页实现更多的功能,我们之前学习的都是针对页面内容的结构和内容,但学习了BOM之后,我们可以对浏览器的宽度进行调整,与浏览器进行交互

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值