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

1.window

  1. window是浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象(全局对象)。在javascript中声明的全局变量是window的属性,方法是window的方法

1.1Window alert() 方法

  1. 定义:alert() 方法用于显示带有一条指定消息和一个 确认 按钮的警告框。
  2. 语法:alert(message)
  1. window.alert("hello world")

1.2Window confirm() 方法

  1. 定义:confirm()方法用于显示一个带有指定消息和确认及取消按钮的对话框。
  2. 如果访问者点击"确定",此方法返回true,否则返回false
  3. 语法:window.confirm(“msg”)
  1. <ul>
  2. <li>html<button>删除</button></li>
  3. <li>css<button>删除</button></li>
  4. <li>js<button>删除</button></li>
  5. </ul>
  6. <script>
  7. var btns=document.getElementsByTagName("button");
  8. for(var i=0;i<btns.length;i++){
  9. btns[i].onclick=function(){
  10. var temp=window.confirm("确定吗");
  11. if(temp){
  12. this.parentNode.style.display="none"
  13. }
  14. }
  15. }
  16. </script>

1.3 Window prompt() 方法

  1. 定义:prompt()方法用于显示可提示用户进行输入的对话框。这个方法返回用户输入的字符串。
  2. 语法:prompt(msg,defaultText)//msg表示在对话框显示的纯文本;defaultText 要输入文本。
  1. <script>
  2. var test=window.prompt("请输入","hello");
  3. console.log(test)
  4. </script>

2.window对象方法:定时器

  1. 超时调用-setTimeout()
  2. 间歇调用-setInterval()
  1. /* 超时调用
  2. 间隔一段时间触发,只会触发一次
  3. */
  4. setTimeout(function(){
  5. console.log("hello world")
  6. },2000)
  7. /*
  8. setInterval()间歇调用
  9. 每间隔一段时间,就会触发
  10. */
  11. setInterval(function(){
  12. console.log("1")
  13. },1000)

2.1递归

函数调用函数自身,就叫递归

  1. <script>
  2. function show(){
  3. setTimeout(function(){
  4. console.log(1)
  5. show();
  6. },1000)
  7. }
  8. show()
  9. </script>

2.2清除定时器 clearInterval()

  1. <button id="btn">停止定时器</button>
  2. <script>
  3. /* 设置定时器的时候,会在window下挂载一个属性 */
  4. var btn = document.getElementById("btn");
  5. var temp = setInterval(function(){
  6. console.log("2")
  7. },1000)
  8. btn.onclick = function(){
  9. clearInterval(temp);
  10. }
  11. </script>

3.location对象

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

3.1location对象属性

  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中指定的端口号,如果没有,返回空字符串
  1. //location.href
  2. <button id="btn">跳转到百度</button>
  3. <script>
  4. var btn = document.getElementById("btn");
  5. btn.onclick = function(){
  6. console.log(location.href="https://www.baidu.com/")
  7. }
  8. </script>

4.history对象

history对象保存了用户在浏览器中访问页面的历史记录

history对象属性

  1. 语法:history.back()
  2. 功能:回到历史记录的上一步
  3. 相当于是用了history.go(-1)
  4. //-1表示前一步,-2前两部
  5. 语法:history.go(1)
  6. 功能:回到历史记录的前一步
  7. 相当于history.forward()
  8. 语法:history.go(-n)
  9. 功能:回到历史记录的前n
  10. 语法:history.go(n)
  11. 功能:回到历史记录的后n

5.screen对象

  1. screen对象包含有关客户端显示屏幕的信息
  2. screen.availWidth //availWidth 属性声明了显示浏览器的屏幕的可用宽度,以像素计
  3. screen.availHeight
  1. <script>
  2. // 获取客户端关于屏幕的信息
  3. var screenWidth = window.screen.availWidth;
  4. //获取可视区域的width
  5. var viewWidth = document.body.clientWidth;
  6. console.log(screenWidth)
  7. console.log(viewWidth)
  8. </script>

6.navigator对象

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

  1. <script>
  2. console.log(navigator.userAgent)
  3. </script>