JavaScript事件
用户界面事件
事件和其影响的对象
abort 当图像禁止载入时 || 图像元素
blur、focus 当对象失去或获得焦点时 || 适用于window和表单元素
change 当选择项发生变化时 || 适用于表单元素,当该元素失去焦点后,值发生了变化
click、dblclick 单击鼠标、双击鼠标 || 绝大多数页面元素
contextmenu 单击鼠标右键 || web页面文档
error 当页面或图像无法载入时 || web页面文档和图像
keydown、keyup、keypress 按下一个键,松开一个键、按下后再松开一个键 || web页面文档和特定的表单元素
load、unload 当图像或页面载入完成时,页面失去焦点 || web页面文档和图像(仅限于载入)
onbeforeunload 离开页面之前触发 || web页面文档
mousedown、mouseup 按下鼠标键,松开鼠标键 || 绝大多数页面元素
mouseover、mouseout 鼠标移到某个元素上,从某个元素上移开 || 绝大多数页面元素
mousemove 移动鼠标 || 绝大多数页面元素
reset 重置表单 || 针对表单
resize 调整窗口或窗体的大小 || 窗口或窗体
select 选中某个文本 || 表单文字输入框
scroll 当对象滚动时 || 窗口、窗体,或者自动设置的高度或宽度范围的对象(这时将显示出滚动条)
submit 表单已提交 || 针对表单
Event对象
在IE将Event视为window对象的属性。当处理事件时,将通过程序访问window对象,其包含的数据也会相应地进行填充。
处理这些跨浏览器差异的方法之一:检查传入函数的event对象是否已经实例化。
function mouseDown(nsEvent){
var theEvent=nsEvent ? nsEvent :window.event;
var locString="X="+theEvent.screenX+"Y="+theEvent.screenY;
alert(locString);
}
在Event提供的属性中,以下是跨浏览器兼容的:
altkey 布尔值,用来表示事件触发时Alt键是否按下
clientX 事件触发时客户端的当前x坐标
clientY 事件触发时客户端的当前y坐标
ctrlKey 布尔值,用来表示事件触发时Ctrl键是否按下
keyCode 当前按键的代码(数字)
screenX 事件触发时屏幕的x坐标
screenY 事件触发时屏幕的y坐标
shiftKey 布尔值,用来表示事件触发时shift键是否按下
type 事件类型
onerror事件会在文档或图像加载过程中发生错误时被触发。支持该事件的HTML标签有img、object、style,支持该事件的JavaScript对象有window和image。
例如:通过该方法,可以使得当前图片载入失败时显示默认图片
//当图片test.jpg不存在,触发onerror事件,调用fn(this)函数,用默认图片images/about.gif替代。
<img src="test.jpg" onerror="fn(this)"/>
function fn(oImage){
oImage.src='images/about.gif';
oImage.onerror=null;
}
如果页面中出现脚本错误,也会产生onerror事件,可以用来协助处理页面中JavaScript错误。利用onerror事件进行错误处理,必须创建一个错误的函数,称作onerror事件处理器。事件处理器允许使用onerror事件的三个参数:msg(错误消息)、url(发生错误的页面的url)、line(发生错误的代码行)。
//在IE浏览器中返回值决定是否在浏览器上显示标准的错误信息。如果返回false浏览器显示错误信息;如果返回true,浏览器不显示错误信息,显示的错误信息在状态栏中进行提示。
window.onerror=handleErr;
function handleErr(msg,url,line){
//错误处理代码
return true ;
}
例子:
如果浏览器不支持某个属性,那么当访问该属性时将返回undefined值:
bubbles 是否会通过DOM执行事件冒泡(非IE浏览器)
cancelBubble 冒泡操作是否取消
cancelabel 事件是否能取消
charCode 当前按下的字符键的Unicode值(对于IE,keyCode)
currentTarget 事件针对元素的引用(对于IE,srcElement)
isChar 事件是否生成一个字符
layerX 如果元素采用的是绝对定位,那么该值为与当前(元素)相关的x坐标
layerY 如果元素采用的是绝对定位,那么该值为与当前(元素)相关的y坐标