什么是: 专门操做浏览器窗口的API
没有标准, 致使浏览器兼容性问题
包括:
window
history
location
navigator
dom
event
screen前端
属性: .innerWidth, .innerHeight 浏览器窗口中,文档显示区的宽和高
方法: .open() .close() .open("url","name")node
三种:浏览器
1.在当前窗口打开,可后退: .open("url","_self") 2.在新窗口打开,可打开多个: .open("url","_blank") 3.在新窗口打开,只能打开一个: .open("url","自定义窗口名")
在当前窗口中,每访问一个新url,都会将新url压入history
API: history.go(n)缓存
3种:服务器
前进: history.go(1) 后退: history.go(-1) 刷新: history.go(0)
属性:
.href 完整url地址
.protocol 协议
.host 主机名+端口号
.hostname 主机名
.port 端口号
.pathname 相对路径
.hash #锚点地址
.search ?查询字符串cookie
方法:dom
从新加载页面: 刷新: 2种:函数
周期性定时器:
什么是: 让程序每隔指定的时间间隔,反复执行一项任务
什么时候: 只要让程序按照指定的时间间隔,自动执行一项任务
如何: 3件事:
1.任务函数: 让定时器反复执行的任务
2.启动定时器: timer=setInterval(task, interval)优化
让程序,每隔interval 毫秒自动执行一次task任务
3.中止定时器: clearInterval(timer)this
timer: 定时器的序号, 在内存中惟一标识定时器的整数 专门用于中止定时器 如何得到: 只能在启动定时器时得到。 什么时候: 只要一个定时器可能被中止,就要在启动时,先保存定时器序号 好的习惯: 在clearInterval以后,手动清除timer中残留的序号: timer=null;
中止定时器: 2种状况:
2.一次性定时器:
什么是: 让程序先等待一段时间,再执行一次任务。执行后,自动中止。
什么时候: 只要让程序延迟执行一件事时
如何: 3件事:
1.task
2.启动定时器: timer=setTimeout(task,wait)
让程序等待wait毫秒后,自动执行一次task,执行后自动中止
3.中止定时器: clearTimeout(timer)
定时器中的任务函数,必须等待主程序全部语句执行后,才能执行。
1.什么是: 保存浏览器配置信息的对象
包括:
.cookieEnabled: 判断当前浏览器是否启用cookie
2.什么是cookie: 在客户端持久存储用户私密数据的小文件
为何: 内存中全部数据都是临时的! 程序关闭,内存中一切变量都释放!
什么时候: 只要但愿在客户端持久保存数据,都用cookie
.plugins: 包含浏览器全部插件信息的集合
3.什么是插件: 为浏览器添加新功能的小软件
如何判断是否安装指定插件:
.userAgent: 保存浏览器名称和版本号的字符串
什么时候: 只要判断浏览器名称和版本号
什么是事件: 人为触发的,或浏览器自动触发的页面内容状态的改变。
什么是事件处理函数: 当事件发生时,自动执行的函数。
如何绑定: 3种:
什么是: 从事件触发处处理函数执行,所通过的过程
3个阶段:
什么是: 当事件发生时,自动建立的,封装事件信息的对象
什么时候: 只要但愿得到事件信息,或修改事件的默认行为时
如何获取: 事件对象默认老是以处理函数第一个参数,自动传入
如何使用:
利用冒泡:
优化: 尽可能减小事件监听的个数
为何: 浏览器查找事件监听,采用的是遍历的方式
事件监听多,浏览器查找就慢
什么时候: 若是对多个子元素绑定相同事件时,都要利用冒泡
如何: 只要在父元素绑定一次,全部子元素共用便可!
2个难题:
1. 得到目标元素: 目标元素: 最初实际触发事件的当前元素 如何得到: 错误: this->父元素 正确: e.target 2. 筛选目标元素: 好比: 经过nodeName, class, 内容。。。
阻止默认行为:
什么时候: 只要事件的默认行为不是想要的
如何: e.preventDefault();
什么时候:
1. 相对于屏幕左上角: e.screenX, e.screenY 2. 相对于文档显示区左上角: e.clientX, e.clientY 3. 相对于当前元素左上角: e.offsetX, e.offsetY
事件: window.onscroll
得到页面滚动过的高度: body顶部超出文档显示区顶部的距离
scrollTop=document.documentElement.scrollTop ||document.body.scrollTop;
滚动API: window.scrollTo(left, top) window.scrollBy(left的增量,top的增量)