JavaScript event对象整理及详细介绍
Event属性和方法:
1.type:事件的类型,如onlick中的click;
2.srcElement/target:事件源,就是发生事件的元素;
3.button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中0代表左键,1代表中间键,2代表右键)
4.clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上
document.body.scrollLeft和document.body.scrollTop)
5.offsetX,offsetY/layerX,layerY:事件发生的时候,鼠标相对于源元素左上角的位置(这一定要定义position:relative;,值可以是fixedabsoluterelative这几种);
6.x,y/pageX,pageY:检索相对于父要素鼠标水平坐标的整数;
7.altKey,ctrlKey,shiftKey等:返回一个布尔值;
8.keyCode:返回keydown何keyup事件发生的时候按键的代码,以及keypress事件的Unicode字符;(firefox2不支持event.keycode,可以用event.which替代)
9.fromElement,toElement:前者是指代mouseover事件中鼠标移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素;
上面支持IE
下面的支持firefox:
event.relatedTarget;去那里
从那里来用event.srcElement||event.target
10.cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到(捕获)包容层次的元素;(e.cancelBubble=true;相当于e.stopPropagation();)
11.returnValue:一个布尔属性,设置为false的时候可以组织浏览器执行默认的事件动作;(e.returnValue=false;相当于e.preventDefault();)
12.attachEvent(),detachEvent()/addEventListener(),removeEventListener:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在
attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素;
13.screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;
HTMLDOMinnerheight、innerwidth属性
定义和用法
只读属性,声明了窗口的文档显示区的高度和宽度,以像素计。
这里的宽度和高度不包括菜单栏、工具栏以及滚动条等的高度。
IE不支持这些属性。它用document.documentElement或document.body(与IE的版本相关)的clientWidth和clientHeight属性作为替代。
Window对象
所有浏览器都支持window对象。它表示浏览器窗口。
所有JavaScript全局对象、函数以及变量均自动成为window对象的成员。
全局变量是window对象的属性。
全局函数是window对象的方法。
甚至HTMLDOM的document也是window对象的属性之一:
window.document.getElementById("header");
与此相同:
document.getElementById("header");
浏览器对象模型(BOM)
浏览器对象模型(BrowserObjectModel)尚无正式标准。
Window尺寸
有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。
对于InternetExplorer、Chrome、Firefox、Opera以及Safari:
-window.innerHeight-浏览器窗口的内部高度
-window.innerWidth-浏览器窗口的内部宽度
对于InternetExplorer8、7、6、5:
-document.documentElement.clientHeight
-document.documentElement.clientWidth
或者
-document.body.clientHeight
-document.body.clientWidth
实用的JavaScript方案(涵盖所有浏览器):
实例
varw=window.innerWidth ||document.documentElement.clientWidth ||document.body.clientWidth; varh=window.innerHeight ||document.documentElement.clientHeight ||document.body.clientHeight;
亲自试一试
该例显示浏览器窗口的高度和宽度:(不包括工具栏/滚动条)
Object对象
Object对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为ECMAScript中的Object对象与Java中的java.lang.Object相似,ECMAScript中的所有对象都由这个对象继承而来,Object对象中的所有属性和方法都会出现在其他对象中,所以理解了Object对象,就可以更好地理解其他对象。
Object对象具有下列属性:
constructor
对创建对象的函数的引用(指针)。对于Object对象,该指针指向原始的Object()函数。
Prototype
对该对象的对象原型的引用。对于所有的对象,它默认返回Object对象的一个实例。
Object对象还具有几个方法:
hasOwnProperty(property)
判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))
IsPrototypeOf(object)
判断该对象是否为另一个对象的原型。
PropertyIsEnumerable
判断给定的属性是否可以用for...in语句进行枚举。
ToString()
返回对象的原始字符串表示。对于Object对象,ECMA-262没有定义这个值,所以不同的ECMAScript实现具有不同的值。
ValueOf()
返回最适合该对象的原始值。对于许多对象,该方法返回的值都与ToString()的返回值相同。
注释:上面列出的每种属性和方法都会被其他对象覆盖。
一些说明:
1. event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等;
2. event对象只在事件发生的过程中才有效。
firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。
在IE/Opera中是window.event,在Firefox中是event;而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,Opera中两者都可用。
3. 下面两句效果相同
varevt=(evt)?evt:((window.event)?window.event:null);
varevt=evt||window.event;//firefox下window.event为null,IE下event为null
4. IE中事件的起泡
IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如,div标签包含了a,如果这两个标签都有onclick事件的处理函数,那么执行的情况就是先执行标签a的onclick事件处理函数,再执行div的事件处理函数。如果希望的事件处理函数执行完毕之后,不希望执行上层的div的onclick的事件处理函数了,那么就把cancelBubble设置为true即可。
vars=+newDate();
解释如下:=+是不存在的;
+newDate()是一个东西;
+相当于.valueOf();
看到回复补充一下.getTime()这个也是得到毫秒数
//4个结果一样返回当前时间的毫秒数 alert(+newDate()); alert(+newDate); vars=newDate(); alert(s.valueOf()); alert(s.getTime());
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!