在IE下正常 可以创建层 显示位置也正确 在FF下就不正常了,好像是说 获取Event.clientX时出错~~~~

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>测试页</title>
    <style type="text/css">
    body{ background:#003333; color:#009900; font-size:14px;}
    span{ margin:0px; padding:0px; background:#000000; color:#009900; position:absolute; }
    .div{ margin:0px; padding:0px; background:#FF0000; color:#FFF; position:absolute; }
    </style>
    <script type="text/javascript">
    var SHArr=["hidden","visible"];
    function $(id){return document.getElementById ? document.getElementById(id):null;}
    function CDiv(evt){
        var topnum,leftnum;
        if(document.all) Event = event; else Event = evt;
        Mxy = getMouseXY(evt); topnum = Mxy[1];    leftnum = Mxy[0];
        if($("cdiv"))document.body.removeChild($("cdiv"));
        var Str = document.createElement("div"); Str.id = "cdiv"; Str.className = "div";
        Str.style.width = "380px";        Str.style.height = "50px";
        Str.style.left = leftnum+"px";    Str.style.top = topnum+"px";
        Str.innerHTML = "<p>&nbsp;</p>鼠标创建的层<p>&nbsp;</p>";
        document.body.appendChild(Str);
    }
    function getMouseXY(Event){    
            var yScrolltop,xScrollleft;
            if(self.pageYOffset || self.pageXOffset){
                xScrollleft = self.pageXOffset;
                yScrolltop = self.pageYOffset;
            }else if(document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){
                yScrolltop = document.documentElement.scrollTop;
                xScrollleft = document.documentElement.scrollLeft;
            }else if(document.body){
                yScrolltop = document.body.scrollTop;
                xScrollleft = document.body.scrollLeft;
            }
            return [xScrollleft + Event.clientX, yScrolltop + Event.clientY];
    }
    window.onload=function(){
       $("pad").onclick = CDiv;
    }
    </script>
    </head>
    <body>
    <span id="pad" onclick="CDiv();">
    <p><br></p><p><br></p>
    <p>&nbsp;鼠标单击创建层(位置为当前鼠标位置)&nbsp;</p>
    <p><br></p><p><br></p>
    </span>
    </body>
    </html>
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>测试页</title>
    <style type="text/css">
    body{ background:#003333; color:#009900; font-size:14px;}
    span{ margin:0px; padding:0px; background:#000000; color:#009900; position:absolute; }
    .div{ margin:0px; padding:0px; background:#FF0000; color:#FFF; position:absolute; }
    </style>
    <script type="text/javascript">
    var SHArr=["hidden","visible"];
    function $(id){return document.getElementById ? document.getElementById(id):null;}
    function CDiv(e){
    e= e|| window.event; 
        var topnum,leftnum; 
        Mxy = getMouseXY(e); topnum = Mxy[1];    leftnum = Mxy[0];
        if($("cdiv"))document.body.removeChild($("cdiv"));
        var Str = document.createElement("div"); Str.id = "cdiv"; Str.className = "div";
        Str.style.width = "380px";        Str.style.height = "50px";
        Str.style.left = leftnum+"px";    Str.style.top = topnum+"px";
        Str.innerHTML = "<p>&nbsp;</p>鼠标创建的层<p>&nbsp;</p>";
        document.body.appendChild(Str);
    }
    function getMouseXY(Event){  
            var yScrolltop,xScrollleft;
            if(self.pageYOffset || self.pageXOffset){
                xScrollleft = self.pageXOffset;
                yScrolltop = self.pageYOffset;
            }else if(document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){
                yScrolltop = document.documentElement.scrollTop;
                xScrollleft = document.documentElement.scrollLeft;
            }else if(document.body){
                yScrolltop = document.body.scrollTop;
                xScrollleft = document.body.scrollLeft;
            }
            if(document.all){
    mouseX=xScrollleft + event.clientX
    mouseY=yScrolltop + event.clientY
    } else{ 
    mouseX = Event.pageX; 
    mouseY = Event.pageY;
    }
            return [mouseX,mouseY];
    }
    </script>
    </head>
    <body>
    <span onclick="CDiv(event);">
    <p><br></p><p><br></p>
    <p>&nbsp;鼠标单击创建层(位置为当前鼠标位置)&nbsp;</p>
    <p><br></p><p><br></p>
    </span>
    </body>
    </html>