浏览 2659 次
锁定老帖子 主题:js事件
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-11  
问题:由于在页面上的按钮太多了,设计上又不能改,只能通过变通的方式修改一下页面,省得难看!
使用内置对象:navigator.userAgent.toLowerCase()分别对IE和FF进行调用
FF:mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.1) gecko/2008070208 firefox/3.0.1(firefox是3.0.1的版本)
IE:mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1; mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; sv1) ; .net clr 2.0.50727)(我用的IE的版本是6.0的)
这样我们可以通过var isIE = (uagent.indexOf("msie")!=-1 && document.all);方式来判断客户端浏览器类型了。网上查资料的时候看到这样的判断方式: var isIE = document.all&&window.print;均可判断!
知道了用户的浏览器类型之后就可以根据浏览器对Event对象的支持来编程,具体的版本支持参看:W3school
通过Event对象,我们可以知道事件触发的event.screenY/screenX/clientX/clientY/offsetX/offsetY/x/y/srcElement.tagName根据得到的srcElement我们可以操作其属性值
Event里的一些属性说明:(把一些常用的摘下来,以后备用)
1.type:事件的类型,就是HTML标签属性中,没有“on”前缀之后的字符串,例如“Click”就代表单击事件。
2.srcElement:事件源,就是发生事件的元素。比如<a ></a> a这个链接是事件发生的源头,也就是该事件的srcElement。(非IE中用target)
3.button:声明了被按下的鼠标键,是一个整数。0代表没有按键,1代表鼠标左键,2代表鼠标右键,4代表鼠标的中间键,如果按下了多个鼠标键,就把这些值加在一起,所以3就代表左右键同时按下。
4.clientX/clientY:是指事件发生的时候,鼠标的横、纵坐标,返回的是整数,它们的值是相对于包容窗口的左上角生成的。
5.offsetX/offsetY:鼠标指针相对于源元素的位置,可以确定单击Image对象的哪个象素。
6.altKey,ctrlKey,shiftKey:顾名思义,这些属性是指鼠标事件发生的时候,是否同时按住了Alt、Ctrl或者Shift键,返回的是一个布尔值。
7.keyCode:返回keydown和keyup事件发生的时候,按键的代码以及keypress事件的Unicode字符。比如event.keyCode=13代表按下了回车键;
8.fromElement、toElement前者是指代mouseover事件移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素。
9.cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素,它用于检测是否接受上层元素的事件的控制。true代表不被上层元素的事件控制,false代表允许被上层元素的事件控制。
10.returnValue:一个布尔值属性,设置为false的时候可以阻止浏览器执行默认的事件动作,相当于<a href=”#” onclick=”ProcessMethod();return false;” />。
11.attachEvent()和detachEvent()方法:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics