Javascript 在不同浏览器上显示不同坐标的图像

Javascript 在不同浏览器上显示不同坐标的图像,javascript,html,Javascript,Html,我正在绘制一个固定宽度和高度的图像。我允许用户单击图像,并存储单击图像的位置(x-y坐标)。下面是一个示例代码: <script language="JavaScript" type="text/JavaScript"> var posx; var posy; function showP(e) { // captures the mouse position posx = 0; posy = 0; if (!e) { va

我正在绘制一个固定宽度和高度的图像。我允许用户单击图像,并存储单击图像的位置(x-y坐标)。下面是一个示例代码:

<script language="JavaScript" type="text/JavaScript">
    var posx; var posy;

 function showP(e) {
        // captures the mouse position
        posx = 0; posy = 0;
        if (!e) { var e = window.event; }
        if (e.pageX || e.pageY) {
            posx = e.pageX;
            posy = e.pageY;
        }
        else if (e.clientX || e.clientY) {
            posx = e.clientX;
            posy = e.clientY;
        }
        alert('X mouse is: ' + posx + ' Y mouse is: ' + posy );
    } 
</script>

var-posx;var posy;
函数showP(e){
//捕捉鼠标位置
posx=0;posy=0;
如果(!e){var e=window.event;}
如果(e.pageX | e.pageY){
posx=e.pageX;
posy=e.pageY;
}
else if(e.clientX | e.clientY){
posx=e.clientX;
posy=e.clientY;
}
警报('X鼠标为“+posx+”,Y鼠标为“+posy”);
} 

我注意到,对于图像上的一个固定点,我在不同的浏览器上获得了不同的X和Y坐标

谁能告诉我为什么会这样。
谢谢

您可以检查活动中获得的所有数据

 var a = "";
 for (var key in e){ 
     if( typeof e[key]!='function' &&  typeof e[key] !='object' )
     a += key+'='+ e[key]+'\n' 
  }
  alert(a)
此构造有助于比较浏览器中的边距和填充

var padding = parseInt($("#imgId").css("padding-top"));
我认为您需要调查您的代码和样式,可能您与影响结果的填充和边距存在一些冲突


希望这种方式能对您有所帮助。

如果没有看到HTML/CSS,很难说您的页面某些元素属性(边框、边距、填充等)在不同浏览器的页面上呈现不同,从而导致不同的X,Y位置。无论如何,您应该首先计算相对于图像元素位置的值。这里是一个简单的html,因为@gunnerz不同的浏览器对边距和填充有不同的默认值。如果不设置它们,图像将不会放置在同一位置。你可以在图像上设置一个绝对位置,或者(更好)得到图像的偏移量,然后从你得到的坐标中减去它,这样你就得到了图像的局部坐标。谢谢安东。我明天试试看