event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。
例1
代码如下 | 复制代码 |
<SCRIPT LANGUAGE="JScript"> function cancelLink() { if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false; } </SCRIPT> <BODY onclick="cancelLink()"> 下面的例子在状态栏上显示鼠标的当前位置。 <BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y"> |
window.event is undefind问题解决
解决一
用兼容方法吧,
代码如下 | 复制代码 |
if(window.event) window.event.returnValue = false; else e.preventDefault();//for firefox |
解决二
代码如下 | 复制代码 |
function linksover(e){ e = e||window.event; var div=document.createElement("div"); div.className="titles"; div.style.position="absolute"; div.style.left=e.clientX; div.style.top=e.clientY; div.innerText=this.innerText; } |
window.event对象在ie与ff中的区别
1、window.event
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=domousemove(event)
代码如下 | 复制代码 |
<input type="button" onmousemove="showDiv(event);"//event不需要加引号 function showDiv(event) { var event=window.event||event; event.clientX; event.clientY; } |
2 、鼠标当前坐标
代码如下 | 复制代码 |
IE::event.x和event.y。 FF:event.pagex和event.pagey。 |
通用:两者都有event.clientx和event.clienty属性。
3 、鼠标当前坐标(加上滚动条滚过的距离)
代码如下 | 复制代码 |
IE:event.offsetx和event.offsety。 FF:event.layerx和event.layery。 |
4、标签的x和y的坐标位置:style.posleft 和 style.postop
IE:有。
FF:没有。
通用:object.offsetleft 和 object.offsettop。
5、窗体的高度和宽度
代码如下 | 复制代码 |
IE:document.body.offsetwidth和document.body.offsetheight。注意:此时页面一定要有body标签。 FF:windows.innerwidth和windows.innerhegiht,以及document.documentelement.clientwidth和 document.documentelement.clientheight。 通用:document.body.clientwidth和document.body.clientheight。 |
6、添加事件
代码如下 | 复制代码 |
ie:element.attachevent(”onclick”, func);。 ff:element.addeventlistener(”click”, func, true)。 |
通用:element.onclick=func。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样的, onclick只有执行一个过程,而attachevent和addeventlistener执行的是一个过程列表,也就是多个过程。例
如:element.attachevent(”onclick”, func1);element.attachevent(”onclick”, func2)这样func1和func2都会被执
行。
7、标签的自定义属性
ie:如果给标签div1定义了一个属性value,可以div1.value和div1[”value”]取得该值。
ff:不能用div1.value和div1[”value”]取。
通用:div1.getattribute(”value”)。
8、父节点、子节点和删除节点
代码如下 | 复制代码 |
ie:parentelement、parement.children,element.romovenode(true)。 ff:parentnode、parentnode.childnodes,node.parentnode.removechild(node)。 |