JavaScript 中的window.event代表的是事件的状态,但是我有一个疑问。。。
一、window.event代表着事件对象的状态。只有在事件发生时生效。如鼠标、键盘等事件被触发时这个对象才存在。window.event这只在IE下是这样的。他并不是标准。。也就是说其他浏览器并不支持。在W3C标准支持的浏览器下事件对向是引发事件涵数的第一个参数,参数名随意。
二、javascript函数(方法)d()
参数为e||window.event 表示e或window.event 这句话是跨浏览器的写法 支持这两种方式的 浏览器才能进入该方法,IE中该对象为window.event(window可省略) 而Firefox中该对象为e ,至于该对象是什么:该对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等 例如:获取光标位置 event.clientX event.clientY
拓展资料
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
(参考资料 百度百科 JavaScript)
<style type="text/css">
#obj{background:red;width:300px;height:200px;position:relative;}
</style>
<div id="obj"></div>
<script type="text/javascript">
document.getElementById("obj").onclick=function(evt){
//获取的这个ID为obj的DIV对象就是个实例引起鼠标事件的元素
//evt代表事件对象(W3C DOM标准下)
var evt=evt || event; //标准化事件对象(W3C DOM 和IE DOM )
evt.Target=evt.Target || evt.srcElement;//标准化事件对象属性<引起事件的元素>
//(W3C DOM 和IE DOM )
evt.layerX=evt.layerX || evt.offsetX;//鼠标相对于引起事件的元素的父元素的X坐标(标准化IE)
evt.layerY=evt.layerY || evt.offsetY;//鼠标相对于引起事件的元素的父元素的Y坐标(标准化IE)
alert("相对这个DIV的X方向的坐标"+evt.layerX+"\n相对这个DIV的Y方向的坐标"+evt.layerY)
}
</script>
//以上都是手打的。望采纳。可直接保存代码部分复制到页面的body部分。在IE和FF下都可以正常执行。
参数为e||window.event 表示e或window.event 这句话是跨浏览器的写法 支持这两种方式的 浏览器才能进入该方法
IE中该对象为window.event(window可省略) 而Firefox中该对象为e
至于该对象是什么:
该对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等 例如:获取光标位置 event.clientX event.clientY

来自电脑网络类芝麻团 2011-09-25
但在FIREFOX下不一样,在firefox中event 是事件回调函数的第一个参数,事件不发生时是不存在event对象的
无论是在IE还是在firefox下, 应在在事件回调函数里使用event对象
我刚刚工作,还是个JS小菜鸟,高手能给举个例子吗,有点不明白什么教回调函数,最好越全面越详细越好,谢了啊!
事件触发后要执行的函数就是这个事件的回调函数
<button id="btn" onclick="func(1,2,event)">click</button>
这里的onclick="func(1,2,event)" 相当于
document.getElementById("btn").onclick = function(event){
/*
这是回调函数,他的第一个参数就是event,在这里你可以使用其他参数名,但是,如果内嵌在html标签中的js代码,必须写成event
*/
alert(event) //firefox ,IE下 则 alert(window.event)
func(1,2,event);
}
function func(a,b,e)
{ //这个func不是回调函数,在这个例子中他只是在回调函数内部被调用
alert(a+','+b);
alert(e); //这个是被传进来的event对象
}
在HTML标签中内嵌的js代码中访问event对象 都可以简单的用event指代,因为这不但符合firefox的规范,而且,在IE中刚好是因为存在window.event,而访问window对象下的属性和方法都可以忽略window不写,因此,下面的方式func的第三个参数都是event,
<button id="btn" onclick="func(1,2,event)">click</button>
但是你要知道,这个event的用法在根本上是不同的,因为如果你使用document.getElementById("btn").onclick = 回调函数
的方式来给HTML标签绑定事件回调函数时,你只能在回调函数第一个参数里传入event对象,但是IE不是这样,在IE下你只能在回调函数里面用 window.event(或直接用event)来访问event对象

2016-01-05
