DOM和BOM-day25-个人学习笔记
一、常用BOM对象:navigator history location screen
1、navigator:保存浏览器配置信息的对象
cookieEnabled:判断当前浏览器是否启用cookie
plugins:保存所有插件对象的集合
userAgent:保存了浏览器名称,版本号的字符串
2、history:window对象中保存当前窗体访问过的url的历史记录栈
history.go(1):前进1次
history.go(-1):后退1次
history.go(0):刷新当前页
history.go(n):前进/后退n次
3、location:当前窗口正在打开的url地址对象
location.search:获得url中的查询字符串
如何进一步获取参数名和参数值?先按&分隔,再按=分隔
location.replace("新url"):在当前窗口打开新链接,不可后退(history中旧url被新url替换了)
使用location在当前窗口打开新链接,可后退:2种
location.href="新url";
location.assign("新url");
刷新:location.reload();页面没更改时,不用重新从服务器加载
4、screen:封装当前屏幕的显示信息
screen.height/width:完成屏幕宽高
screen.availHeight/Width:去掉任务栏后的剩余宽高(window7下任务栏透明)
二、事件:浏览器自动触发的或用户手动触发的对象状态的改变
DOM Level2 Event标准
IE8:自成体系!
事件处理函数:当事件触发时,自动执行的函数
比如:<button onclick="函数/js语句"></button>//btn.onclick();
事件处理:
(1)事件定义:3种
html:<标签 on事件名="函数调用/js语句">
js:elem.on事件名=函数对象
DOM标准:elem.addEventListener("事件名",函数对象,是否在捕获阶段触发true/false)
一个元素的一个事件处理函数,可add多个不同函数对象
IE8:elem.attachEvent("on事件名",函数对象)
(2)事件周期:从浏览器捕获到事件后,一直到最后一个事件触发后,经历的过程。
DOM标准:3个阶段:
a、(由外向内)捕获:从最外层html元素开始,向内逐层记录每层元素绑定的事件处理函数。到目标元素为止
b、目标触发:自动执行目标元素上绑定的事件处理函数
c、(由内向外)事件冒泡:从目标元素的父元素开始,逐层向上执行每层的事件处理函数,到最外层html结束。
IE8的事件周期:2个阶段:没有捕获
(3)event对象:当事件发生时,自动创建,封装了事件信息。比如:keyCode,screenX/Y
获得event对象:
html: onclick="fun(event)"实际调动时event会自动获得当前事件对象
fun(e){e中获得的就是事件对象}
js:elem.onXXXX=fun;
fun(){
//DOM标准:自动创建event对象,默认以第一个参数传入!
//IE8:window全局的event属性,当事件发生时,也会自动创建event对象,但会保存在window.event中
}
event对象中包含:
1、目标元素对象:var src=e.srcElement||e.target
2、取消/利用冒泡
取消:一般用在当前事件处理函数执行结尾
DOM:e.stopPropagation()
IE8:e.cancelBubble=true;
优化:如果多个子元素中定义了相同的事件处理函数,其实只需在共同的父元素上定义一次即可!
3、
取消事件:
if(e.preventDefault){
e.preventDefaullt(); //--DOM
}else{
e.returnValue=false;
}
何时取消:表单提交前,如果验证未通过,则取消之后的自动提交