`
pcajax
  • 浏览: 2162947 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IE和FireFox中的event事件

阅读更多

最近在项目中碰到这样一个问题,表单提交,是用javascript控制的,当用户回车时就代表提交,同事在网上搜了一段代码放进去,在IE下是正常的,但我在用FF查看时,发现提交无效,用Firebug跟踪得到的结果是:  window.event has no properties

程序代码 程序代码

function document.onkeydown(){
var source=event.srcElement.id;
var btnid;
if (event.keyCode == 13 ){
   if (source=="txtEmpCode"){
      btnid="btnQry"
      var btn = document.getElementById(btnid);
      if (btn != event.srcElement){
           btn.click();
         return false;}
    }else {
         return  false;
         }
   }
}

从获取事件的源对象及ID属性,然后到提交按钮的click事件,看上去是没有问题(项目中用的全是struts标签),但确忽略了FireFox中event与IE中的异同,IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的;网上有资料说可以写成: var eventSource =window.event.srcElement||eventTag.target; 就解决了,但实际上是不行的,FF下既然不能识别window.event,又哪来的window.event.srcElement呢?所以会出现错误:  window.event has no properties;

程序代码 程序代码

    function enter_another(eventTag)
    {
                var events = eventTag||window.event;
    var eventSource;
       var currentKey = events.charCode||events.keyCode;
    if(document.all)    
           eventSource =window.event.srcElement; 
    else
        eventSource = events.target;        
    if( currentKey == 13 )
        alert("您按了回车键,输入的内容为"+eventSource.value);
    }

或直接写成

程序代码 程序代码

    function enter_another(events)
    {
          var eventSource;
           var currentKey = events.charCode||events.keyCode;
        if(document.all)    
                eventSource =window.event.srcElement; 
        else
                eventSource = events.target;        
        if( currentKey == 13 )
        alert("您按了回车键,输入的内容为"+eventSource.value);
    }

html代码引用:

程序代码 程序代码

<input type="text" name="pwd" onkeydown="enter_another(event)" />

修正代码:

程序代码 程序代码

function enter_down(events){
var eventSource;
var currentKey=events.charCode||events.keyCode;
if(document.all)
       eventSource =window.event.srcElement; 
else
       eventSource = events.target;
var source=eventSource.id;
var btnid;
     if (currentKey == 13 ){
      if (source=="txtEmpCode"){ 
         btnid="btnQry";
         var btn = document.getElementById(btnid);
         if (btn != eventSource){
             document.getElementById("logform").submit();
           return false;}
    }else {
         return  false;
         }
   }
}

如果var currentKey=events.charCode||events.keyCode;按浏览器分开写的话,会导致得到的currentKey值永远为0;

程序代码 程序代码

<html:password property="user.passwd"  size="15" styleId="txtEmpCode" onkeydown="enter_down(event)"   styleClass="login_input" tabindex="2"/>

分享到:
评论

相关推荐

    兼容IE和FireFox的event(事件)的对象获得

    兼容IE和FireFox的event(事件)的对象获得,直接下载引用即可

    event兼容调用(IE,Firefox,Chrome)

    本文将深入探讨在Internet Explorer(IE)、Firefox、Chrome三大主流浏览器中实现event兼容调用的方法,重点解析事件对象的获取及鼠标坐标获取的差异。 #### 事件对象的兼容性获取 在JavaScript中,事件处理通常...

    BlueBala » 兼容IE和Firefox的事件模型(拖动)

    在IE中,我们可以通过`onmousedown`、`onmousemove`和`onmouseup`事件来实现拖动,而在Firefox中,我们可以使用`addEventListener`添加这些事件的监听器。但这样的做法会导致代码的不兼容性,因为IE不支持`...

    同时兼容IE和FireFox的事件处理event代码--添加文件上传例子

    "同时兼容IE和FireFox的事件处理event代码--添加文件上传例子"这个主题聚焦于解决浏览器之间的差异,尤其是针对老版本的Internet Explorer(IE)和Firefox。在这些早期浏览器中,事件处理的实现方式有所不同,导致...

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    标题与描述均聚焦于“JavaScript在IE和Firefox(火狐)的不兼容问题解决”,这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox...

    兼容IE和Firefox获得keyBoardEvent对象

    window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。解决方法是if(typeof...

    js在IE和fireFox的区别

    ### JavaScript在Internet Explorer (IE) 和 Firefox 中的区别与解决方案 #### 一、获取HTML元素的方式差异 1. **通过ID获取元素**: - **IE**:支持`document.getElementById`和`document.all`两种方式。 - ...

    js在IE和Firefox不同之处

    另外,`event.layerX`属性在IE和Firefox中都有,但在具体的意义上可能存在差异,需要进一步测试确认。 #### 4. HTML对象的ID作为对象名的问题 在IE中,可以直接通过HTML对象的ID作为`document`的下属对象变量名来...

    IE和Firefox的鼠标滚轮事件JavaScript代码

    1. **事件对象的差异**:IE和Firefox中,用于获取鼠标滚轮滚动方向的属性不同。 - 在IE中,使用 `event.wheelDelta` 来表示滚轮的变化量。 - 在Firefox中,则使用 `event.detail`。 2. **兼容性处理方案**:通过...

    Javascript在IE和FireFox中的兼容处理

    - IE使用`event.clientX`和`event.clientY`,Firefox使用`event.pageX`和`event.pageY`。可以使用`event.clientX + document.body.scrollLeft`和`event.clientY + document.body.scrollTop`来兼容。 7. **event的...

    Javascript的IE和Firefox兼容性参考

    - IE的事件对象`event`有`x`和`y`属性,表示鼠标位置,而Firefox使用`event.pageX`和`event.pageY`。为了兼容,可以使用`event.clientX`和`event.clientY`,这两个属性在IE和Firefox中都可用。如果需要精确的坐标,...

    IE和firefox浏览器的event事件兼容性汇总

    本文将深入探讨IE和Firefox浏览器中event事件的兼容性问题。 1. **event对象的使用** 在IE浏览器中,事件处理函数可以直接访问到全局的`event`对象,而Firefox和其他遵循W3C标准的浏览器则不支持这种全局访问方式...

    Javascript的IE和Firefox(火狐)兼容性

    **问题描述**:在IE和Firefox中捕获并处理鼠标移动事件的方式不同。 **解决方案**: - IE通过`setCapture()`和`releaseCapture()`方法。 - Firefox和其他现代浏览器通过`addEventListener()`和`removeEventListener...

    javascript在IE和Firefox中兼容性问题

    IE中可以通过`window.event`直接访问当前事件对象,但Firefox不支持此属性。解决这一问题通常需要在事件处理器函数内部使用事件参数对象,如`function(event)`。 #### 结论 解决JavaScript在IE与Firefox之间的...

    IE和Firefox下event事件杂谈

    本文主要探讨了IE和Firefox在处理`event`事件对象时的异同。 在IE4+中,`event`对象作为全局变量,可以直接通过`window.event`访问,用于获取和操作事件信息。而在Firefox和其他遵循W3C标准的浏览器中,`event`对象...

    IE和Firefox中J avaScript兼容

    ### IE和Firefox中JavaScript兼容性解析 在Web开发过程中,浏览器兼容性问题一直是开发者们重点关注的问题之一。不同的浏览器对同一段代码的解析和执行可能会有所不同,尤其是早期版本的Internet Explorer(IE)和...

    css和javascript在IE和Firefox中二十三个不同点

    - **事件对象**:IE中的`window.event`全局变量用于获取事件信息,而Firefox中事件信息在事件处理函数的参数中。解决方法是在事件处理函数中接受`event`参数,并检查其是否存在。 9. **坐标属性** - **鼠标坐标**...

    ie 和 firefox 的javascript 兼容问题(网上下载的).doc

    在事件处理中,IE 和 Firefox 对 `window.event` 的支持不同。 **说明:** - **IE环境下**,可以使用 `window.event`。 - **Firefox环境下**,不支持 `window.event`,必须在事件处理函数中传递事件对象。 **解决...

    IE和Firefox差异参考大全

    1. `event`对象:IE和Firefox的事件处理函数中,传递的event对象有所不同,IE使用全局的`window.event`,Firefox直接在函数参数中传递。 2. `this`关键字:在事件处理函数中,IE中的`this`通常指向触发事件的元素,...

Global site tag (gtag.js) - Google Analytics