http://community.csdn.net/Expert/topic/3673/3673363.xml?temp=.2031061

解决方案 »

  1.   

    在IE/Opera中,是window.event,而在Firefox中,是event
    而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持。
    我们还是用例子来说明。 
    //***********************************
    <HTML> 
    <HEAD> 
    <TITLE> event的跨浏览器测试 </TITLE> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!--
    //Firefox中在写关于event的函数的时候,必须把event对象作为参数传递给函数,这样才能使用event对象 
    function doTestEvent( evt ) 

      //如果是IE/Opera,我们就用 srcElement 来获取触发事件的对象 
      //如果是Firefox,我们就用 target 来获取触发事件的对象 
      var src = evt.srcElement ? evt.srcElement : evt.target; 
      alert( src.value ); 

    //--> 
    </script> 
    </head> 
    <body> <form name="frmtest"> 
    <input type="button" value="event 测试" onclick="doTestEvent(event);" name="bttest"> 
    </form> </body> 
    </html> 
    //***********************************这里顺便说一下判断鼠标按键的问题。 
    在 IE 里面 
    左键是 window.event.button = 1 
    右键是 window.event.button = 2
    中键是 window.event.button = 4
    没有按键动作的时候 window.event.button = 0在 Firefox 里面 
    左键是 event.button = 0 
    右键是 event.button = 2
    中键是 event.button = 1 
    没有按键动作的时候 event.button = 0在 Opera 7.23/7.54 里面 
    鼠标左键是 window.event.button = 1
    没有按键动作的时候 window.event.button = 1 
    右键和中键无法获取 而在 Opera 7.60/8.0 里面 
    鼠标左键是 window.event.button = 0
    没有按键动作的时候 window.event.button = 0
    右键和中键无法获取 下面我们写一个能在 IE4.01+/Firefox 0.9+/Opera 7.23+ 环境中均能运行正常的小程序,功能是用鼠标拖动层。 
    //***********************************
    <HTML> 
    <HEAD> 
    <TITLE> 可用鼠标拖动的层 </TITLE> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!--
    var moving = false; 
    var initX  = 0; 
    var initY  = 0; //******************* 
    // 获取触发事件的对象 
    //******************* 
    function findSrc(evt) 

      return( evt.target ? evt.target : evt.srcElement ); 
    } function start(evt) 

        //按下鼠标左键才允许移动 
        //evt.button == 1 IE/Opera 7.23/7.54 
        //evt.button == 0 Firefox/Opera 7.6+ 
        if ( evt.button == 1 || evt.button == 0) 
        { 
            moving = true; 
            initX  = evt.offsetX ? evt.offsetX : evt.layerX; 
            initY  = evt.offsetY ? evt.offsetY : evt.layerY; 
            findSrc( evt ).style.cursor = "move"; 
            window.status = "开始(button=" + evt.button + ")"; 
        } else { 
            stop( evt ); 
        } 
    } function stop( evt ) 

        moving = false; 
        findSrc( evt ).style.cursor = ""; 
        window.status = "结束(button=" + evt.button + ")"; 
    } function move(evt) 

        //按下鼠标左键才允许移动 
        //evt.button == 1 IE/Opera 7.23/7.54 
        //evt.button == 0 Firefox/Opera 7.6+ 
        if (moving && ( evt.button == 1 || evt.button == 0 )) 
        { 
            var intx = document.body.scrollLeft + evt.clientX; //获取当前鼠标位置的X坐标 
            var inty = document.body.scrollTop + evt.clientY; //获取当前鼠标位置的Y坐标         var div = findSrc( evt ); 
            div.style.top = inty - initY; 
            div.style.left = intx - initX; 
            window.status = "X=" + intx + " Y=" + inty + " button=" + evt.button; 
        } else { 
            window.status = "已停止(button=" + evt.button + ")"; 
        } 
    }
    //--> 
    </SCRIPT> 
    </HEAD> <BODY> 
    <div id="mdiv" 
         style="position: absolute; width:300px; height: 200px; background-color: #FFFFE1;" 
         onmousedown="start( event );" 
         onmouseup="stop( event );" 
         onmouseout="stop( event );" 
         onmousemove="move( event );"></div>