• BOM 概述
  • window 对象的常见事件
  • 定时器
  • JS 执行机制
  • location 对象
  • navigator 对象
  • history 对象

案例: 5秒后自动关闭的广告

案例分析 
① 核心思路:5秒之后,就把这个广告隐藏起来 ② 用定时器setTimeout

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><img src="data:images/ad.jpg" alt="" class="ad"><script>var ad = document.querySelector('.ad');setTimeout(function() {ad.style.display = 'none';}, 5000);</script>
</body></html>

案例: 倒计时

案例分析 
① 这个倒计时是不断变化的,因此需要定时器来自动变化(setInterval) ② 三个黑色盒子里面分别存放时分秒 ③ 三个黑色盒子利用innerHTML 放入计算的小时分钟秒数  ④ 第一次执行也是间隔毫秒数,因此刚刷新页面会有空白 ⑤ 最好采取封装函数的方式, 这样可以先调用一次这个函数,防止刚开始刷新页面有空白问 题

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>div {margin: 200px;}span {display: inline-block;width: 40px;height: 40px;background-color: #333;font-size: 20px;color: #fff;text-align: center;line-height: 40px;}</style>
</head><body><div><span class="hour">1</span><span class="minute">2</span><span class="second">3</span></div><script>// 1. 获取元素 var hour = document.querySelector('.hour'); // 小时的黑色盒子var minute = document.querySelector('.minute'); // 分钟的黑色盒子var second = document.querySelector('.second'); // 秒数的黑色盒子var inputTime = +new Date('2019-5-1 18:00:00'); // 返回的是用户输入时间总的毫秒数countDown(); // 我们先调用一次这个函数,防止第一次刷新页面有空白 // 2. 开启定时器setInterval(countDown, 1000);function countDown() {var nowTime = +new Date(); // 返回的是当前时间总的毫秒数var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 var h = parseInt(times / 60 / 60 % 24); //时h = h < 10 ? '0' + h : h;hour.innerHTML = h; // 把剩余的小时给 小时黑色盒子var m = parseInt(times / 60 % 60); // 分m = m < 10 ? '0' + m : m;minute.innerHTML = m;var s = parseInt(times % 60); // 当前的秒s = s < 10 ? '0' + s : s;second.innerHTML = s;}</script>
</body></html

案例: 发送短信 
点击按钮后,该按钮60秒之内不能再次点击,防止重复发送短信

案例分析 
① 按钮点击之后,会禁用 disabled 为true  ② 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改 ③ 里面秒数是有变化的,因此需要用到定时器 ④ 定义一个变量,在定时器里面,不断递减 ⑤ 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body>手机号码: <input type="number"> <button>发送</button><script>// 按钮点击之后,会禁用 disabled 为true // 同时按钮里面的内容会变化, 注意 button 里面的内容通过 innerHTML修改// 里面秒数是有变化的,因此需要用到定时器// 定义一个变量,在定时器里面,不断递减// 如果变量为0 说明到了时间,我们需要停止定时器,并且复原按钮初始状态var btn = document.querySelector('button');var time = 3; // 定义剩下的秒数btn.addEventListener('click', function() {btn.disabled = true;var timer = setInterval(function() {if (time == 0) {// 清除定时器和复原按钮clearInterval(timer);btn.disabled = false;btn.innerHTML = '发送';} else {btn.innerHTML = '还剩下' + time + '秒';time--;}}, 1000);})</script>
</body></html>

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><button>点击</button><script>// this 指向问题 一般情况下this的最终指向的是那个调用它的对象// 1. 全局作用域或者普通函数中this指向全局对象window( 注意定时器里面的this指向window)console.log(this);function fn() {console.log(this);}window.fn();window.setTimeout(function() {console.log(this);}, 1000);// 2. 方法调用中谁调用this指向谁var o = {sayHi: function() {console.log(this); // this指向的是 o 这个对象}}o.sayHi();var btn = document.querySelector('button');// btn.onclick = function() {//     console.log(this); // this指向的是btn这个按钮对象// }btn.addEventListener('click', function() {console.log(this); // this指向的是btn这个按钮对象})// 3. 构造函数中this指向构造函数的实例function Fun() {console.log(this); // this 指向的是fun 实例对象}var fun = new Fun();</script>
</body></html>

结果:1 2 3

结果:1 2 3

结果:1 2 3 click 或 1 2 click 3 (取决于按下的时机)

由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环( event loop)

案例: 5秒钟之后自动跳转页面

① 利用定时器做倒计时效果 ② 时间到了,就跳转页面。 使用 location.href

        var btn = document.querySelector('button');var div = document.querySelector('div');btn.addEventListener('click', function() {// console.log(location.href);location.href = 'http://www.itcast.cn';})var timer = 5;setInterval(function() {if (timer == 0) {location.href = 'http://www.itcast.cn';} else {div.innerHTML = '您将在' + timer + '秒钟之后跳转到首页';timer--;}}, 1000);

案例: 获取 URL 参数数据

案例分析 
① 第一个登录页面,里面有提交表单, action 提交到 index.html页面 ② 第二个页面,可以使用第一个页面的参数,这样实现了一个数据不同页面之间的传递效果 ③ 第二个页面之所以可以使用第一个页面的数据,是利用了URL 里面的 location.search参数 ④ 在第二个页面中,需要把这个参数提取。 ⑤ 第一步去掉?  利用 substr  ⑥ 第二步 利用=号分割 键 和 值     split(‘=‘) ⑦ 第一个数组就是键   第二个数组就是值

login.html:<form action="index.html">用户名: <input type="text" name="uname"><input type="submit" value="登录"></form>
index.html:<div></div><script>console.log(location.search); // ?uname=andy// 1.先去掉?  substr('起始的位置',截取几个字符);var params = location.search.substr(1); // uname=andyconsole.log(params);// 2. 利用=把字符串分割为数组 split('=');var arr = params.split('=');console.log(arr); // ["uname", "ANDY"]var div = document.querySelector('div');// 3.把数据写入div中div.innerHTML = arr[1] + '欢迎您';</script>

    <button>点击</button><script>var btn = document.querySelector('button');btn.addEventListener('click', function() {// 记录浏览历史,所以可以实现后退功能// location.assign('http://www.itcast.cn');// 不记录浏览历史,所以不可以实现后退功能location.replace('http://www.itcast.cn');// location.reload(true);})</script>

BOM 浏览器对象模型 (黑马课程总结【侵删】)相关推荐

  1. JavaScript(七)—— BOM 浏览器对象模型

    本篇为 JavaScript 系列笔记第七篇,将陆续更新后续内容.参考:黑马程序员JavaScript核心教程,前端基础教程 系列笔记: JavaScript(一)-- 初识JavaScript / ...

  2. BOM——浏览器对象模型

    BOM 浏览器对象模型 BOM 的概念 • BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的.可以与浏览器窗口进行互动的对象结构.BOM 由多个 ...

  3. BOM浏览器对象模型(Browser Object Model)

    文章目录 一.BOM浏览器对象模型(Browser Object Model) window对象 window对象的方法 navigator/location/history/screen对象 nav ...

  4. JavaScript BOM浏览器对象模型

    什么是BOM浏览器对象模型? 浏览器对象模型(Browser Object Model(BOM))允许JavaScript与浏览器对话 BOM:浏览器对象模型 //宿主对象 BOM 提供了很多对象,用 ...

  5. JS BOM浏览器对象模型

    BOM浏览器对象模型 bom概述 BOM(Browser Object Model) 即浏览器对象模型,它提供了独立于内容与浏览器窗口进行交互的对象,其核心对象的window BOM由一系列相关的对象 ...

  6. Javascript的HTML BOM(浏览器对象模型)

    Javascript的HTML BOM(浏览器对象模型) 一.Window 对象 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话". Browser O ...

  7. BOM—浏览器对象模型(Browser Object Model)

     1,javascript   组成部分: 1.ECMAscript(核心标准):    定义了基本的语法,比如:if for 数组 字符串 ... 2.BOM  : 浏览器对象模型(Browser ...

  8. BOM——浏览器对象模型(1)

    BOM-浏览器对象模型 BOM概述 1.1 BOM概述 DOM与BOM的比较 1.2 BOM的构成 window对象的常见事件 2.1窗口加载事件 2.2调整窗口大小事件 定时器 3.1 setTim ...

  9. BOM——浏览器对象模型(Browser Object Model)

    什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...

  10. JavaScript - WebAPI - BOM浏览器对象模型

    1.1-BOM与DOM介绍 JavaScript语言由三部分组成 ECMAJavaScript:定义了js的语法规范 Dom:document object model文档对象模型:一个HTML文档中 ...

最新文章

  1. 总结ISO各层协议都有哪些
  2. Django学习笔记之Django ORM Aggregation聚合详解
  3. 服务器内存使用率高找不到是哪个进程,内存占用率高,但是找不到内存消耗大的程序...
  4. arcgis 坐标系 2000坐标系_干货 | 关于投影和坐标系那些事,你是否都已还给了老师?...
  5. sdi转hdmi转换器应用领域及规格参数详解
  6. CVPR2021 | 北航商汤耶鲁口头报告
  7. docker k8s helm常用命令梳理
  8. 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。
  9. linux命令之route
  10. AI人工智能技术可以做什么
  11. SQL Server维护工作详解
  12. 原核DNA甲基化简述
  13. linux centos中使用cp命令复制文件的时候出现omitting directory报错如何解决
  14. volatility内存取证分析与讲解(持续更新)
  15. 失传万年的PS合成进阶宝典(一)
  16. SPDY:一种更快速web的实验协议(转)
  17. 【看这个篇就够了】95%成为网络安全工程师
  18. 功能需要富文本编译器图片不转base64,琢磨了一下,上代码
  19. 职场不可不知的六大潜规则
  20. 太空射击第14课: 玩家生命

热门文章

  1. Java学习 (二) 在MAC终端上运行Java程序
  2. 将prezi试用期无限延长的办法
  3. 职业生涯规划计算机专业作文,信息与计算科学专业大学生职业生涯规划范文
  4. 【安卓】华为应用商城版本更新步骤
  5. 逻辑运算和逻辑表达式
  6. 云服务器:西部数码VS阿里云
  7. 我读之《拉伸——最好的运动》
  8. 基于VMware采用kubeadm方式部署单节点k8s集群(练习使用)
  9. app逆向篇之实战案例-某音乐app
  10. 实验三+087+饶慧敏