2012-06-28 11 views
5

मैं एक वेब पेज विकसित कर रहा हूं जहां मैंने <div> गतिशील रूप से एक छवि सेट की है। यह फ़ायरफ़ॉक्स में काम करता है लेकिन यह आईई में विफल रहता है।इंटरनेट एक्सप्लोरर के लिए जावास्क्रिप्ट का उपयोग करके माउस पॉइंटर स्थिति कैसे प्राप्त करें?

सवाल यह है कि आईई में माउस पॉइंटर स्थिति कैसे प्राप्त करें? मैं माउस सूचक स्थिति प्राप्त करने के लिए निम्नलिखित कोड का उपयोग कर रहा

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); 
} 

यह Firefox के साथ ठीक काम करता है।

+4

के साथ इस समस्या को हल देखें इस *** कुछ भी नहीं *** जावा से कोई लेना देना नहीं है। मैं आपके लिए 'जावा' टैग हटा दूंगा, लेकिन रास्ते में लंबित संपादन है। –

+0

इस http://expsharing.blogspot.in/2008/08/following-javascript-help-we-get.html – Imdad

उत्तर

0

उपयोग: clientX और clientY

इस कोड की तरह

:

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

क्या आपको त्रुटि या कुछ मिलता है? – roev

8

इस प्रयास करें, यह 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

दस्तावेज़ का पता लगाने के लिए टर्नरी ऑपरेटर का उपयोग क्यों करें? क्यों नहीं उपयोग !! document.all? –

4

मैं इस कोड

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

क्यों आप IE var को IEI में नहीं बदलते हैं क्योंकि if (IE) कथन IE से परे सबकुछ पर चलाएगा। –

संबंधित मुद्दे