day09-Bom操作

BOM概述

BOM(browser object model) 浏览器对象模型: 浏览器将他提供的API放在window 上面,window是一个顶级对象也是全局对象。我们可使用这个对象中的方法来对浏览器进行一些操作。
window对象下有一个名为 ‘name’ 的属性,所以平常命名变量避免使用name命名
对于Bom并没有统一的标准,每个浏览器均有差异。兼容性不好

浏览器提供的一些方法

1. 没啥用的弹窗

        alert('alert: 信息提示')
        prompt('prompt: 输入框')
        // 确定返回true  取消返回false, 不推荐使用
        confirm('confirm: 确认框')

2. 获取页面宽高/屏幕宽高

        var w = window.innerWidth
        var h = window.innerHeight
	    var screenW = window.screen.width
        var screenH = window.screen.height
        console.log(w, h);
        console.log(screenW , screenH );

3. 滚动条

			/* 获取滚动条滚动的宽度和高度
	            - 高度  scrollTop
	            - 宽度  scrollLeft
	            - 注意:此处获取的时候有兼容性问题  有可能是body的滚动条 有可能是html的滚动条
	            - 兼容性获取
           */
                 var h = document.body.scrollTop || document.documentElement.scrollTop
                 var w = document.body.scrollLeft || document.documentElement.scrollLeft
		
            // 设置滚动条的高度和宽度
                document.body.scrollTop = 100
                document.documentElement.scrollTop = 100
            // scrollTo方法
            /*
                 window.scrollTo(x, y)
                    - x是设置横向滚动条的宽度
                    - y是设置纵向滚动条的高度
            */
                 window.scrollTo({
                    left: 500,
                    top: 600,
                    behavior: 'smooth'  //'auto'  默认为auto , smooth为平滑滚动
                })

4. location对象

  • 获取网页地址栏相关的信息
    • 一个完整的网址组成部分有哪些
      • eg: https://wwww.baidu.com:443/home/a/b?kk=1&ll=44&ffs2=44#jaja
      • 协议 http:// https:// file://
      • 域名 www.baidu.com www.taobao.com
      • 端口号 这个一般被隐藏了 但是他确实存在 :数字 [0, 65535]
      • 路径 /home/a/b
      • 请求参数 ?kk=1&ll=44&ffs2=44
      • 哈希值 #jaja
      • 一个网址必须包含 协议+域名+端口号称为 源
    • location对象
      • 这个对象里面包含了我们需要的所有地址栏的信息
      • 可以通过这个对象获取地址栏每一个部分
      • location.href: 获取或设置完整的 URL 地址。
      • location.protocol: 获取或设置 URL 的协议部分,如 “http:” 或 “https:”。
      • location.host: 获取或设置 URL 的主机名和端口号部分。
      • location.hostname: 获取或设置 URL 的主机名部分。
      • location.port: 获取或设置 URL 的端口号部分。
      • location.pathname: 获取或设置 URL 的路径部分。
      • location.search: 获取或设置 URL 的查询参数部分,包括 “?” 符号。
      • location.hash: 获取或设置 URL

这里我们可以在浏览器的控制台中进行交互

在这里插入图片描述

打开 window.open()
刷新 location.reload()
关闭 window.close()

        var url = 'https://y.qq.com/'

        window.open(url)
        setTimeout(function(){
            location.reload()
        },2000)
  
        setTimeout(function(){
            window.close()
        },2000)

跳转
   location.assign(跳转的网址)
   location.href = 跳转的网址
   location.replace(跳转的网址)
前两种跳转是会生成记录 后一种相当于将当前的记录覆盖掉 不会产生新的访问记录

            location.href = 'https://m.163.com/'
            // location.replace('https://www.taobao.com')
            // location.assign('https://www.baidu.com')

5. history对象

history对象
作用: 用于记录当前页面的访问记录,访问过的页面地址均会被history对象保留
1. 访问记录长度
- history.length
2. 前进一个历史记录
- history.forward()
3.后退一个历史记录
- history.back()
4.前进或者后退几个历史记录
- history.go(数字)
- 正数前进,负数后退,0为刷新该页面
pushState和replaceState 这两个方法都会往历史记录添加一个数据 这种操作会改变地址栏的路径部分 但是不会发生跳转
   - history.pushState(stateObj, ‘’, url)
   - history.replaceState(stateObj, ‘’, url)
history.state可以获取当前历史记录堆栈里面存放的数据 这个数据是pushState或者replaceState传递的第一个参数

6. 本地存储与会话存储

1、本地存储: 可以在浏览器里面存放一个数据 可以存储5M的数据( localStorage )

  • 存数据
    • localStorage.setItem(名称, 数据)
  • 获取数据
    • var 数据 = localStorage.getItem(名称)
  • 删除数据
    • localStorage.removeItem(名称)
  • 清空所有数据
    • localStorage.clear()

2、会话存储: sessionStorage

  • 存数据
    • sessionStorage.setItem(名称, 数据)
  • 获取数据
    • var 数据 = sessionStorage.getItem(名称)
  • 删除数据
    • sessionStorage.removeItem(名称)

在这里插入图片描述

7. 浏览器事件

window提供了一些监听浏览器的事件
1、onload: 网页加载完成事件。 当浏览器加载页面完成时自动触发函数

	window.onload = function(){
		console.log('加载完成。。')
  }

2、 onresize 网页尺寸变化执行的事件。当页面尺寸变化时自动触发函数

	window.onresize = function(){
        // 每一次网页尺寸变化都会触发这个事件
        // 第一次进入的时候是不会触发
        	console.log('变化了。。')
    }

3、onscroll 网页滚动条滚动事件。当滚动条滚动时自动触发函数

    window.onscroll = function(){
        // 只要滚动滚动了就会触发
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值