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 ;

}

例子:

JavaScript事件

如果浏览器不支持某个属性,那么当访问该属性时将返回undefined值:

bubbles           是否会通过DOM执行事件冒泡(非IE浏览器)

cancelBubble  冒泡操作是否取消

cancelabel       事件是否能取消

charCode        当前按下的字符键的Unicode值(对于IE,keyCode)

currentTarget   事件针对元素的引用(对于IE,srcElement)

isChar              事件是否生成一个字符

layerX              如果元素采用的是绝对定位,那么该值为与当前(元素)相关的x坐标

layerY              如果元素采用的是绝对定位,那么该值为与当前(元素)相关的y坐标