How to get mouse pointer position using javascript for internet explorer?

前端 未结 4 1871
轮回少年
轮回少年 2020-12-06 14:23

I am developing a web page where I have set an image in a

dynamically. It works in Firefox but it fails in IE.

The question is: how to get m

相关标签:
4条回答
  • 2020-12-06 14:46

    Use: clientX and clientY

    Like this code:

    var posx = 0;
    var posy = 0;
    if (e.pageX || e.pageY)     {
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY)    {
        posx = e.clientX + document.body.scrollLeft
            + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop
            + document.documentElement.scrollTop;
    }
    
    0 讨论(0)
  • 2020-12-06 14:54

    I solved this problem with this code

        var CurX;
        var CurY;
        var IE = document.all?true:false;
        if(IE){
            CurX = window.event.clientX;
            CurY = window.event.clientY;
        }
        else{
            if (window.captureEvents) {
            document.captureEvents(Event.MOUSEMOVE);
        }
        document.onmousemove = getCursorXY;
    }
    
    function getCursorXY(e) {   
        CurX = (window.Event) ? e.pageX : event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
        CurY = (window.Event) ? e.pageY : event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    }
    
    0 讨论(0)
  • 2020-12-06 14:59

    Try this, This should work on all browsers including IE.

    <html>
    <body>
    <form name="Show">
    <input type="text" name="MouseX" value="0" size="4"> X<br>
    <input type="text" name="MouseY" value="0" size="4"> Y<br>
    </form>
    
    <script language="JavaScript1.2">
    <!--
    
    // Detect if the browser is IE or not.
    // If it is not IE, we assume that the browser is NS.
    var IE = document.all?true:false
    
    // If NS -- that is, !IE -- then set up for mouse capture
    if (!IE) document.captureEvents(Event.MOUSEMOVE)
    
    // Set-up to use getMouseXY function onMouseMove
    document.onmousemove = getMouseXY;
    
    // Temporary variables to hold mouse x-y pos.s
    var tempX = 0
    var tempY = 0
    
    // Main function to retrieve mouse x-y pos.s
    
    function getMouseXY(e) {
      if (IE) { // grab the x-y pos.s if browser is IE
        tempX = event.clientX + document.body.scrollLeft
        tempY = event.clientY + document.body.scrollTop
      } else {  // grab the x-y pos.s if browser is NS
        tempX = e.pageX
        tempY = e.pageY
      }  
      // catch possible negative values in NS4
      if (tempX < 0){tempX = 0}
      if (tempY < 0){tempY = 0}  
      // show the position values in the form named Show
      // in the text fields named MouseX and MouseY
      document.Show.MouseX.value = tempX
      document.Show.MouseY.value = tempY
      return true
    }
    
    //-->
    </script>
    </body>
    </html>
    
    0 讨论(0)
  • 2020-12-06 14:59

    Use jQuery and use event.pageX and event.pageY!

    See http://api.jquery.com/event.pageY/

    0 讨论(0)
提交回复
热议问题