• BOM(browser object model)浏览器对象模型

1.BOM的介绍

JavaScript基础分为三个部分:

  • ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。
  • DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。
  • BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。

BOM:Browser Object Model,浏览器对象模型。
BOM的结构图:
第二节 BOM - 图1
由上图可知:
window对象是bom的顶层对象,所有对象都是通过它延伸出来的,也可以成为window的子对象
dom是bom的一部分

window对象:

  • window对象是JavaScript中的顶级对象。
  • 全局变量、自定义函数也是window对象的属性和方法
  • window对象下的属性和方法调用时,可以省略window

1.window对象的方法—屏幕弹窗

  1. 语法:window.alert()
  2. 语法:window.confirm("msg")
  3. 语法:window.prompt("msg") //提示

1.1.1window.alert()

  1. var btn=window.alert(1)

1.1.2window.prompt(“msg”)

  1. var res=window.prompt("请输入你的名字")
  2. console.log(res)

1.1.3window.confirm(“msg”)

  1. var isDelete= window.confirm("你确定删除吗");
  2. if(isDelete){
  3. //parentNode -->亲爸
  4. btn.parentNode.style.display="none";
  5. }

1.2.window对象的方法—定时器

1.2.1setTimeout—延时调用

  1. <script>
  2. //setTimeout 超时调用 间隔一段时间,执行函数,且只执行一次
  3. console.log(1)
  4. setTimeout(function(){
  5. console.log("a")
  6. },1000)
  7. console.log(2);
  8. //输出结果1 2 a
  9. </script>

1.2.2setInterval—间隔调用

  1. <script>
  2. //间歇调用 间隔一段时间,执行函数
  3. setInterval(function(){
  4. console.log("b")
  5. },3000)
  6. </script>

例子

  1. <script>
  2. /* setInterval
  3. 递归 在函数中调用函数自身 */
  4. function go(){
  5. setTimeout(function(){
  6. console.log("hello world")
  7. go()
  8. },1000)
  9. }
  10. go()
  11. </script>
  1. //每秒输出一个数字 0-3 到3的时侯结束输出
  2. <script>
  3. var a=0;
  4. function go(){
  5. setTimeout(function(){
  6. console.log(a);
  7. a++;
  8. if(a<=3){
  9. go();
  10. }
  11. },1000)
  12. }
  13. go();
  14. </script>

1.2.3清除定时器

  1. clearInterval()
  1. <button id="btn">btn</button>
  2. <script>
  3. var btn=document.getElementById("btn");
  4. var timer=setInterval(function(){
  5. console.log("a")
  6. },3000)
  7. //清除定时器 clearInterval()
  8. console.log(timer)
  9. btn.onclick=function(){
  10. clearInterval(timer)
  11. }
  12. </script>

1.3.window.open()—打开新的浏览器页面

  1. <!-- 打开新的浏览器页面 -->
  2. <button id="btn">打开http://www.baidu.com</button>
  3. <script>
  4. btn.onclick=function(){
  5. window.open('http://www.baidu.com')
  6. }
  7. </script>

2.location对象

location对象提供了与当前窗口中加载的文档有关信息,还提供了一些导航的功能,他既是window对象的属性,也是document对象的属性。

  1. location.hrefwindow.location.href等价
  2. 语法:location.hash
  3. 功能:返回URL中的hash(#号后跟0或多个字符),如果不包含则返回空字符串
  4. 语法:location.host
  5. 功能:返回服务器名称和端口号
  6. 语法:location.hostname
  7. 功能:返回不带端口号的服务器名称
  8. 语法:location.pathname
  9. 功能:返回URL中的目录和(或)文件名
  10. 语法:location.port
  11. 功能:返回URL中指定的端口号,如果没有,返回空字符串

3.history对象

  1. history对象保存了用户在浏览器中访问页面的历史记录
  2. 语法:history.back()
  3. 功能:回到历史记录的上一步
  4. 相当于是用了history.go(-1)
  5. //-1表示前一步,-2前两步
  6. 语法:history.go(1)
  7. 功能:回到历史记录的前一步
  8. 相当于history.forward()
  9. 语法:history.go(-n)
  10. 功能:回到历史记录的前n
  11. 语法:history.go(n)
  12. 功能:回到历史记录的后n

例子

1.返回历史记录的前一个页面 index.html
  1. <a href="detail.html">detail</a>
  2. <button id="btn">返回detail页面</button>
  3. <script>
  4. var btn=document.getElementById("btn");
  5. btn.onclick=function(){
  6. /* 返回历史记录的前一个页面 */
  7. history.forward()
  8. }
  9. </script>

2.回到历史记录的上一个页面 detail.html
  1. <button id="btn">跳转到index.html</button>
  2. <script>
  3. var btn =document.getElementById("btn");
  4. btn.onclick=function(){
  5. history.back()
  6. }
  7. </script>

4.navigator对象

  1. 1.掌握Navigator对象的userAgent属性
  2. 2.掌握如何判断浏览器的类型
  3. 3.掌握如何判断设备的终端是移动还是PC
  4. UserAgent:用来识别浏览器名称,版本,引擎以及操作系统等信息的内容。
  5. //检测浏览器类型
  6. if(/Android|iphone|webOS/i.test(navigator.userAgent)){
  7. location.href="mobile.html"
  8. }else if(/ipad/i.test(navigator.userAgent)){
  9. location.href="pad.html"
  10. }

5.screen对象

  1. screen对象包含有关客户端显示屏幕的信息
  2. screen.availWidth
  3. screen.availHeight