1 BOM简介

概念

BOM(Browser Object Model) 浏览器对象模型
浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器”对话”。
它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window.

组成

Window 窗口对象
Window 对象表示浏览器中打开的窗口。
Navigator 浏览器对象
Navigator 对象包含有关浏览器的信息。
Screen 屏幕对象
Screen 对象包含有关客户端显示屏幕的信息。
History 历史记录对象
History 对象包含用户(在浏览器窗口中)访问过的 URL。
Location 地址栏对象
Location 对象包含有关当前 URL 的信息。

其实, BOM 比 DOM 更大, 它包含 DOM
image.png

操作原理

  1. 将浏览器各个组成部分抽成对象,以面向的方式去操作,提高开发效率(对象有属性和方法,便于操作)

2 window对象

概念
窗口对象
方法
window 对象提供了 2 种定时器
setTimeout 定时一次 用clearTimeout清除
setInterval 循环定时 用clearInterval清除

1) setTimeout

语法

  1. setTimeout(函数, ms时间);

当时间到了, 会执行函数. 只执行一次

  1. <script>
  2. /*语法
  3. window.setTimeout(调用函数,延时时间) 在指定的毫秒数后执行指定代码。
  4. 1,window可以省略
  5. 2,延时时间是毫秒,可以省略,如果省略,默认是0
  6. 3,调用函数,可以直接写函数,也可以写函数名,还可以'函数名()',不提倡
  7. 4,页面中可能有很多个定时器,我们可以用变量来标识这些定时器
  8. */
  9. var timer1 = setTimeout(function(){
  10. console.log('时间到了');
  11. },2000)
  12. function fun(){
  13. console.log('爆炸了');
  14. }
  15. var timer2 = setTimeout(fun,3000)
  16. //setTimeout('fun()',5000) 不提倡这种写法
  17. </script>
  1. <button>点击停止计时</button>
  2. <script>
  3. //设置定时
  4. var timer = setTimeout(function(){
  5. console.log('爆炸');
  6. },5000)
  7. var btn = document.querySelector('button')
  8. btn.addEventListener('click',function(){
  9. //停止定时
  10. clearTimeout(timer)
  11. })
  12. </script>

2) setInterval

语法

  1. setInterval(函数, ms时间);

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

  1. <script>
  2. //setInterval(回调函数,间隔时间) 间隔指定的毫秒数不停地执行指定的代码
  3. setInterval(function(){
  4. console.log('循环爆炸');
  5. },2000)
  6. //它的使用跟 setTimeout 是一样的
  7. //区别
  8. //setTimeout 只执行一次
  9. //setInterval 循环执行
  10. </script>

3) clearInterval

通过clearInterval停止setInterval设置的定时器

  1. <button class="begin">开启定时</button>
  2. <button class="stop">结束定时</button>
  3. <script>
  4. //clearInterval()
  5. //方法用于停止 setInterval() 方法执行的函数代码。
  6. //获取dom对象
  7. var begin = document.querySelector('.begin')
  8. var stop = document.querySelector('.stop')
  9. var timer = null;//全局的变量 null是一个空对象
  10. begin.addEventListener('click',function(){
  11. timer = setInterval(function(){
  12. console.log('循环爆炸');
  13. },1000)
  14. })
  15. stop.addEventListener('click',function(){
  16. clearInterval(timer)
  17. })
  18. </script>

示例:

  1. <body>
  2. 手机号: <input type="text" /> <button>发送</button>
  3. <script>
  4. //获取按钮对象
  5. var btn = document.querySelector('button')
  6. //定义一个计数期
  7. var count = 3
  8. //添加点击事件
  9. btn.addEventListener('click',function(){
  10. //1,禁用按钮
  11. btn.disabled=true
  12. //2,启动定时器
  13. var timer = setInterval(function(){
  14. //4.当count的值减到0的时候,结束定时,恢复按钮的状态
  15. if(count <= 0){
  16. clearInterval(timer)
  17. btn.disabled=false
  18. btn.innerHTML='发送'
  19. count = 3 //将count重置为3,可以继续下一次使用
  20. return
  21. }
  22. //3,把倒计时的时间显示在按钮上
  23. btn.innerHTML = count + '秒后重试'
  24. count--
  25. },1000)
  26. })
  27. </script>
  28. </body>

3 location对象

概念
用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

什么是URL

URL(Uniform Resource Locator), 统一资源定位符

在计算机网络中, 可以通过统一资源定位符(URL)请求对应的服务器资源(Resource)

属性
location.href 获取
location.href = 新的url 跳转
方法
reload() 刷新

  1. <button id="btn01">刷新</button>
  2. <button id="btn02">去百度</button>
  3. <script>
  4. console.log(location);//href: "http://127.0.0.1:5502/17_BOM_location%E5%AF%B9%E8%B1%A1.html"
  5. console.log(location.href);//获取当前页面的url路径
  6. //reload方法 刷新当前页面
  7. var btn01 = document.querySelector('#btn01')
  8. btn01.addEventListener('click',function(){
  9. location.reload() //刷新
  10. })
  11. //location.href 跳转到指定页面
  12. var btn02 = document.querySelector('#btn02')
  13. btn02.addEventListener('click',function(){
  14. location.href='http://www.baidu.com'
  15. })
  16. </script>

4 history对象

1) 作用

history对象类似于浏览器的前进后退功能, 访问历史记录

2) 常用属性方法

属性方法 说明
back() 后退, 返回到上一次的访问的页面
forward() 前进
go(参数) 前进或后退, 1表示前进1个页面, -1表示后退一个页面
  1. <body>
  2. <a href="./20_BOM_history对象02.html">跳转到下一页</a>
  3. </body>
  1. <button>返回上一页</button>
  2. <script>
  3. var btn = document.querySelector('button')
  4. btn.addEventListener('click',function(){
  5. //history.back()//回退到上一页,这与在浏览器中点击后退按钮是相同的
  6. //go() 里面的参数表示跳转页面的个数 例如 history.go(-1) 表示后退一个页面
  7. history.go(-1)
  8. })
  9. </script>