拖拉后的再显示所有的DIV的坐标   位置,,, 
或者。用COOKIE保存   都得。。不知道有没有哪个高手帮帮。本人对JS不是很会。 
===========
什么意思,就是刷新页面后,还是在拖动后的位置??用cookie存储上次的位置?如果是可以参考下面代码
<!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>窗口模拟--Author:Vibo Email:[email protected]</title>
<style type="text/css">
<!--
body,td,th {
  font-family: Arial, 宋体;
  font-size: 12px;
}
.webWinFrame {
  position: absolute;
  left:15px;
  top:15px;
  padding: 3px;
  background-color: #EEEEEE;
}
.webWin {
  width: 300px;
  border: 1px solid #80C65A;
  background-color: #FFFFFF;
}
.webWin .wTitle{
  line-height: 18px;
  padding: 2px;
  font-weight: bold;
  cursor:move;
  background-color: #DDF8CC;
  white-space: nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.webWin .wContent {
  overflow:hidden;
}
.webWin .wResizeBox {
  background-color: #80C65A;
  height: 15px;
  width: 5px;
  position: absolute;
  right: 5px;
  bottom: 5px;
  overflow:hidden;
  cursor:se-resize;
}
body {
  margin-left: 0px;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
}
-->
</style>
</head>
<body onload="InitPos()" onunload="SavePos()">
<div class="webWinFrame" id="testWinA"><div class="webWin">
    <div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a></div>
        <div class="wContent">
<div style="width:300px;height:200px;padding:2px;">
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容<br>
</div>
</div> 
<div></div></div></div>
<div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a></div><div class="wContent">此处显示新 Div 标签的内容
此处显示新 Div 标签的内容
</div><div ></div></div></div>
</body>
</html>
<script>
var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;//在屏幕范围内拖动,这里定义拖动范围的
window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
window.isIE = window.Event?false:true;
window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX,    y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
window.vWinZIndex = 1;
function vDrag(o,ho,initArr){
  ho=ho||o;
  o.style.position="absolute";
  if(!isIE){ho.firstChild.onmousedown=function(){return false;}}  
  ho.onmousedown=function(a){
    o.style.zIndex = window.vWinZIndex;
    window.vWinZIndex++;
    var d=document;if(!a)a=window.event;
    var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
    if(ho.setCapture)
      ho.setCapture();
    else if(window.captureEvents)
      window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
    d.onmousemove=function(a){
      if(!a)a=window.event;
      var mus=getMouseCoords(a)
      if(!a.pageX)a.pageX=mus.x;
      if(!a.pageY)a.pageY=mus.y;
      var tx=a.pageX-x,ty=a.pageY-y;
      if(initArr){
        o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
        o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
      }else{
       //===========这里限制拖动范围用的=========
        if(tx<0) tx=0;
        if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
        if(ty<0)ty=0;
        if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
        //==========================================
        o.style.left = tx+"px";
        o.style.top = ty+"px";
      }
    };
    d.onmouseup=function(){
      if(ho.releaseCapture)
        ho.releaseCapture();
      else if(window.captureEvents)
        window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
      d.onmousemove=null;
      d.onmouseup=null;
    };
  };
}
function createWebWindow(o,intW,intH,oldX,oldY){
  o.style.zIndex = window.vWinZIndex;
  //还原为原来的位置
  if(oldX&&oldY)
  {
     o.style.left=oldX+"px";
     o.style.top=oldY+"px";
  }
  window.vWinZIndex++;
  var winSelf = o.childNodes[0];
  var winTitle = o.childNodes[0].childNodes[0];
  var winContent = o.childNodes[0].childNodes[1];
  var winDbox = o.childNodes[0].childNodes[2];
  var minW =150,minH = 20;
  var _self = this;
  var wX = winSelf.offsetWidth-winContent.offsetWidth;
  var wH = winSelf.offsetHeight-winContent.offsetHeight;
  winDbox.onmousedown = function(e)
  {
    o.style.zIndex = window.vWinZIndex;
    window.vWinZIndex++;
    var d=document;if(!e)e=window.event;
    var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
    var MCD=window.getMouseCoords(e)
    winSelf.startX=MCD.x;
    winSelf.startY=MCD.y;
    winSelf.startW=winSelf.offsetWidth;
    winSelf.startH=winSelf.offsetHeight;
 
    if(winDbox.setCapture)
      winDbox.setCapture();
    else if(window.captureEvents)
      window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
    d.onmousemove =function(e)
    {
      if(!e)e=window.event;
      var mus=getMouseCoords(e)
      var newW = (winSelf.startW +(mus.x-winSelf.startX));
      var newH = (winSelf.startH +(mus.y-winSelf.startY))
      resizeWin(newW,newH);
    }
    d.onmouseup=function()
    {
      if(winDbox.releaseCapture)
        winDbox.releaseCapture();
      else if(window.captureEvents)
        window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
      d.onmousemove=null;
      d.onmouseup=null;
    }
  }
  function resizeWin(newW,newH)
  {
      newW = newW < minW?minW:newW;
      newH = newH < minH?minH:newH;
      winSelf.style.width = newW+"px";
      winSelf.style.height = newH+"px";
      
      winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
      
      winContent.style.width = (newW-wX)+"px";
      winContent.style.height = (newH-wH)+"px";
  }
  {
    resizeWin(intW,intH);
    vDrag(o,winTitle);
  }
}
function W_h(name,w,h)
{
 createWebWindow($(name),w,h);
}
//=================Cookie操作================
function SavePos()//====离开页面时使用cookie保存原来的位置
{
  var d1=$("testWinA");
  var d2=$("testWinB");
  var data="";
  //注意这里当未移动时,d1.style.left是无法获取到css设置的值的
  if(isNaN(parseInt(d1.style.left)))
    data+="0,0";
  else
    data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
  data+="|";
  if(isNaN(parseInt(d2.style.left)))
    data+="0,0";
  else
    data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
  setcookie("data",data);
}
function InitPos()//页面加载时根据cookie初始化位置
{
  var data=getcookie("data");
  if(data!="")//上次的数据
  {
   var ds=data.split("|");
   var p=ds[0].split(",");
   createWebWindow($("testWinA"),100,175,p[0],p[1]);
   p=ds[1].split(",");
   createWebWindow($("testWinB"),300,175,p[0],p[1]);
  }   
  else//默认
  {
  createWebWindow($("testWinB"),300,100);
  createWebWindow($("testWinA"),100,175);
  }
}
function getcookie(name)
{
  var cookief=false;
  var start=0;
  var end=0;
  var cookiestr=document.cookie;
  var i=0;
  while(i<=cookiestr.length)
  {
    start=i;
    end=start+name.length;
    if(cookiestr.substring(start,end)==name)
    {
      cookief=true;
      break;
    }
    i++;
  }
  if(cookief)
  {
   start=end+1;
   end=cookiestr.length;
   return unescape(cookiestr.substring(start,end));
  }
  return "";
}
function setcookie(name,value)
{
  var exp=new Date();
  exp.setYear(exp.getYear()+1);
  document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
</script>

解决方案 »

  1.   

    问题跟Meizz无关,
    可以提给大家来回答,
    Meizz不一定有时间来回答你的问题,
    有时间也不一定会回复跟他关系不大的问题.
      

  2.   

    对对对,你做的完全OK.
    就是.能不能再帮我做一下.恢复默认接扭.,,.
    我在IE.册了.cookie.好像.还是和上一次一样.换一台机子.试了还是一样.我还以为.是你的机子问题.
    还有.就是如果再能帮我做一个.接钮,可以显示.,,testWinB还有,testWinA的拖动的位置.就是Y,Z,X,
    就是.testWinB移动到哪.的值...
    剧烈韦大的谢谢..

    对.那大家帮我回答..我给分..
    高手都是很忙的.这偶知道.....
      

  3.   

    对了.能不能再帮我加一个 left; //在屏幕范围内拖动,这里定义拖动范围的
      

  4.   

    当你离开页面时是自动保存cookie的,你恢复默认后移动,然后刷新页面原来的位置自动保存下来了.在onload时是根据cookie是否存在来初始化div的位置的.(x,y,z)这样的位置点显示在哪里,说清楚点下面是修改过的
    <span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
    <script>
    var Left=100;//不能超过距离左边100的位置
    function ResetPos()//恢复默认
    {
      var a=$("testWinA");
      var b=$("testWinB");
      a.style.left="15px";//默认左边位置
      a.style.top="15px";
      b.style.left="15px";
      b.style.top="15px";
    }
    //=======修改vDrag函数中的代码如下
     //===========这里限制拖动范围用的=========
     //       if(tx<=Left) tx=Left;//超过左边位置定义时========加了这句=========
     //       if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
    //        if(ty<0)ty=0;
     //       if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
      /====================
    </script>
      

  5.   

    大概修改如下,限制了左边,显示当前位置和恢复默认,发帖大小有限制,删除了些注释什么的.
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>窗口模拟--Author:Vibo Email:[email protected]</title>
    <style type="text/css">
    <!--
    body,td,th {
      font-family: Arial, 宋体;
      font-size: 12px;
    }
    .webWinFrame {
      position: absolute;
      left:15px;
      top:15px;
      padding: 3px;
      background-color: #EEEEEE;
    }
    .webWin {
      width: 300px;
      border: 1px solid #80C65A;
      background-color: #FFFFFF;
    }
    .webWin .wTitle{
      line-height: 18px;
      padding: 2px;
      font-weight: bold;
      cursor:move;
      background-color: #DDF8CC;
      white-space: nowrap;
      overflow:hidden;
      text-overflow:ellipsis
    }
    .webWin .wContent {
      overflow:hidden;
    }
    .webWin .wResizeBox {
      background-color: #80C65A;
      height: 15px;
      width: 5px;
      position: absolute;
      right: 5px;
      bottom: 5px;
      overflow:hidden;
      cursor:se-resize;
    }
    body {
      margin-left: 0px;
      margin-top: 0px;
      margin-right: 0px;
      margin-bottom: 0px;
    }
    -->
    </style>
    </head>
    <body onload="InitPos()" onunload="SavePos()">
    <div class="webWinFrame" id="testWinA"><div class="webWin">
        <div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a><span></span></div>
            <div class="wContent">
    <!---->
    <div style="width:300px;height:200px;padding:2px;">
    Div 标签的内容<br>
    </div>
    <!---->
    </div> 
    <div></div></div></div>
    <div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a><span></span></div><div class="wContent">
    <!---->
    此处显示新Div 标签的内容<br />
    <!---->
    </div><div ></div></div></div>
    <span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
    </body>
    </html>
    <script>
    var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;
    var Left=100;
    window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
    window.isIE = window.Event?false:true;
    window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX,    y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
    window.vWinZIndex = 1;
    function vDrag(o,ho,initArr){
      ho=ho||o;
      o.style.position="absolute";
      if(!isIE){ho.firstChild.onmousedown=function(){return false;}}  
      ho.onmousedown=function(a){
        o.style.zIndex = window.vWinZIndex;
        window.vWinZIndex++;
        var d=document;if(!a)a=window.event;
        var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
        if(ho.setCapture)
          ho.setCapture();
        else if(window.captureEvents)
          window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        d.onmousemove=function(a){
          if(!a)a=window.event;
          var mus=getMouseCoords(a)
          if(!a.pageX)a.pageX=mus.x;
          if(!a.pageY)a.pageY=mus.y;
          var tx=a.pageX-x,ty=a.pageY-y;
          if(initArr){
            o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
            o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
          }else{
           //===========这里限制拖动范围用的=========
            if(tx<=Left) tx=Left;
            if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
            if(ty<0)ty=0;
            if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
            //==========================================
            var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
            PosSpan.innerHTML="("+tx+","+ty+","+o.style.zIndex+")";  
            o.style.left = tx+"px";
            o.style.top = ty+"px";
          }
        };
        d.onmouseup=function(){
          if(ho.releaseCapture)
            ho.releaseCapture();
          else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
          d.onmousemove=null;
          d.onmouseup=null;
        };
      };
    }
    function createWebWindow(o,intW,intH,oldX,oldY){
      o.style.zIndex = window.vWinZIndex;
      var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
      if(oldX&&oldY)
      {
         o.style.left=oldX+"px";
         o.style.top=oldY+"px";  
         PosSpan.innerHTML="("+oldX+","+oldY+","+o.style.zIndex+")";   
      }
      else
        PosSpan.innerHTML="(15,15,"+o.style.zIndex+")";  
      window.vWinZIndex++;
      var winSelf = o.childNodes[0];
      var winTitle = o.childNodes[0].childNodes[0];
      var winContent = o.childNodes[0].childNodes[1];
      var winDbox = o.childNodes[0].childNodes[2];
      var minW =150,minH = 20;
      var _self = this;
      var wX = winSelf.offsetWidth-winContent.offsetWidth;
      var wH = winSelf.offsetHeight-winContent.offsetHeight;
      winDbox.onmousedown = function(e)
      {
        o.style.zIndex = window.vWinZIndex;
        window.vWinZIndex++;
        var d=document;if(!e)e=window.event;
        var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
        var MCD=window.getMouseCoords(e)
        winSelf.startX=MCD.x;
        winSelf.startY=MCD.y;
        winSelf.startW=winSelf.offsetWidth;
        winSelf.startH=winSelf.offsetHeight;
        if(winDbox.setCapture)
          winDbox.setCapture();
        else if(window.captureEvents)
          window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        d.onmousemove =function(e)
        {
          if(!e)e=window.event;
          var mus=getMouseCoords(e)
          var newW = (winSelf.startW +(mus.x-winSelf.startX));
          var newH = (winSelf.startH +(mus.y-winSelf.startY))
          resizeWin(newW,newH);
        }
        d.onmouseup=function()
        {
          if(winDbox.releaseCapture)
            winDbox.releaseCapture();
          else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
          d.onmousemove=null;
          d.onmouseup=null;
        }
      }
      function resizeWin(newW,newH)
      {
          newW = newW < minW?minW:newW;
          newH = newH < minH?minH:newH;
          winSelf.style.width = newW+"px";
          winSelf.style.height = newH+"px";
          winTitle.style.width = isIE?newW+"px":(newW-4)+"px";      
          winContent.style.width = (newW-wX)+"px";
          winContent.style.height = (newH-wH)+"px";
      }
      {
        resizeWin(intW,intH);
        vDrag(o,winTitle);
      }
    }function W_h(name,w,h)
    {
     createWebWindow($(name),w,h);
    }function SavePos()
    {
      var d1=$("testWinA");
      var d2=$("testWinB");
      var data="";
      if(isNaN(parseInt(d1.style.left)))
        data+="0,0";
      else
        data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
      data+="|";
      if(isNaN(parseInt(d2.style.left)))
        data+="0,0";
      else
        data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
      setcookie("data",data);
    }
    function InitPos()
    {
      var data=getcookie("data");
      if(data!="")
      {
         var ds=data.split("|");
         var p=ds[0].split(",");
         createWebWindow($("testWinA"),100,175,p[0],p[1]);
         p=ds[1].split(",");
         createWebWindow($("testWinB"),300,175,p[0],p[1]);
      }   
      else
      {
        createWebWindow($("testWinB"),300,100);
        createWebWindow($("testWinA"),100,175);
      }
    }
    function getcookie(name)
    {
      var cookief=false;
      var start=0;
      var end=0;
      var cookiestr=document.cookie;
      var i=0;
      while(i<=cookiestr.length)
      {
        start=i;
        end=start+name.length;
        if(cookiestr.substring(start,end)==name)
        {
          cookief=true;
          break;
        }
        i++;
      }
      if(cookief)
      {
       start=end+1;
       end=cookiestr.length;
       return unescape(cookiestr.substring(start,end));
      }
      return "";
    }
    function setcookie(name,value)
    {
      var exp=new Date();
      exp.setYear(exp.getYear()+1);
      document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
    }
    function ResetPos()
    {
      var a=$("testWinA");
      var b=$("testWinB");
      a.style.left="15px";
      a.style.top="15px";
      b.style.left="15px";
      b.style.top="15px";
    }
    </script>
      

  6.   

    就是,在testWinA还有,testWinB。[锁定] 这几个层。,,;这样它们就不能移动了哈哈。如果不做了。那我就给分你们了。。
      

  7.   

    代码太多,分2部分发,现在是html的
    <!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>窗口模拟--Author:Vibo Email:[email protected]</title>
    <style type="text/css">
    <!--
    body,td,th {
      font-family: Arial, 宋体;
      font-size: 12px;
    }
    .webWinFrame {
      position: absolute;
      left:15px;
      top:15px;
      padding: 3px;
      background-color: #EEEEEE;
    }
    .webWin {
      width: 300px;
      border: 1px solid #80C65A;
      background-color: #FFFFFF;
    }
    .webWin .wTitle{
      line-height: 18px;
      padding: 2px;
      font-weight: bold;
      cursor:move;
      background-color: #DDF8CC;
      /*display:inline-block;*/
      white-space: nowrap;
      overflow:hidden;
      text-overflow:ellipsis
    }
    .webWin .wContent {
      overflow:hidden;
    }
    .webWin .wResizeBox {
      background-color: #80C65A;
      height: 15px;
      width: 5px;
      position: absolute;
      right: 5px;
      bottom: 5px;
      overflow:hidden;
      cursor:se-resize;
    }
    body {
      margin-left: 0px;
      margin-top: 0px;
      margin-right: 0px;
      margin-bottom: 0px;
    }
    -->
    </style>
    </head>
    <body onload="InitPos()" onunload="SavePos()">
    <div class="webWinFrame" id="testWinA"><div class="webWin">
        <div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a><span></span><span style="cursor:hand" onclick="Lock(this)" lock="false">[锁定]</span></div>
            <div class="wContent">
    <!---->
    <div style="width:300px;height:200px;padding:2px;">
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
    </div>
    <!---->
    </div> 
    <div></div></div></div>
    <div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a><span></span><span style="cursor:hand" lock="false" onclick="Lock(this)">[锁定]</span></div><div class="wContent">
    <!---->
    此处显示新 Div 标签的内容<br />
    此处显示新 Div 标签的内容<br />
    此处显示新 Div 标签的内容<br />
    <!---->
    </div><div ></div></div></div>
    <span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
    </body>
    </html>
      

  8.   

    下面是js部分的,注意是单个锁定,如果是全部锁定,你可以加个hidden,然后通过事件设置值,然后在mousedown时判断是否锁定var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;//在屏幕范围内拖动,这里定义拖动范围的
    var Left=100;//不能超过距离左边100的位置
    window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
    window.isIE = window.Event?false:true;
    window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX,    y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
    window.vWinZIndex = 1;
    function vDrag(o,ho,initArr){  
      ho=ho||o;
      o.style.position="absolute";
      if(!isIE){ho.firstChild.onmousedown=function(){return false;}}  
      ho.onmousedown=function(a){
        o.style.zIndex = window.vWinZIndex;
        window.vWinZIndex++;
        var d=document;if(!a)a=window.event;
        var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
        if(ho.setCapture)
          ho.setCapture();
        else if(window.captureEvents)
          window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        d.onmousemove=function(a){
          if(IsLock(o)) return;
          if(!a)a=window.event;
          var mus=getMouseCoords(a)
          if(!a.pageX)a.pageX=mus.x;
          if(!a.pageY)a.pageY=mus.y;
          var tx=a.pageX-x,ty=a.pageY-y;
          if(initArr){
            o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
            o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
          }else{
           //===========这里限制拖动范围用的=========
            if(tx<=Left) tx=Left;//超过左边位置定义时
            if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
            if(ty<0)ty=0;
            if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
            //==========================================
            var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
            PosSpan.innerHTML="("+tx+","+ty+","+o.style.zIndex+")";  
            o.style.left = tx+"px";
            o.style.top = ty+"px";
          }
        };
        d.onmouseup=function(){
          if(ho.releaseCapture)
            ho.releaseCapture();
          else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
          d.onmousemove=null;
          d.onmouseup=null;
        };
      };
    }
    function createWebWindow(o,intW,intH,oldX,oldY,lockState){
      o.style.zIndex = window.vWinZIndex;
      var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
      //还原为原来的位置
      if(oldX&&oldY)
      {
         o.style.left=oldX+"px";
         o.style.top=oldY+"px";  
         PosSpan.innerHTML="("+oldX+","+oldY+","+o.style.zIndex+")";  
         //设置锁定状态
         var spanlock=o.getElementsByTagName("span")[1];
         spanlock.innerHTML=lockState=="false"?"[锁定]":"[解锁]";
         spanlock.setAttribute("lock",lockState);
      }
      else
        PosSpan.innerHTML="(15,15,"+o.style.zIndex+")";  
      window.vWinZIndex++;
      var winSelf = o.childNodes[0];
      var winTitle = o.childNodes[0].childNodes[0];
      var winContent = o.childNodes[0].childNodes[1];
      var winDbox = o.childNodes[0].childNodes[2];
      var minW =150,minH = 20;
      var _self = this;
      //
      var wX = winSelf.offsetWidth-winContent.offsetWidth;
      var wH = winSelf.offsetHeight-winContent.offsetHeight;
      //
      winDbox.onmousedown = function(e)
      {if(IsLock(o)) return;//被锁定返回
        o.style.zIndex = window.vWinZIndex;
        window.vWinZIndex++;
        var d=document;if(!e)e=window.event;
        var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
        var MCD=window.getMouseCoords(e)
        winSelf.startX=MCD.x;
        winSelf.startY=MCD.y;
        winSelf.startW=winSelf.offsetWidth;
        winSelf.startH=winSelf.offsetHeight;
        //
        if(winDbox.setCapture)
          winDbox.setCapture();
        else if(window.captureEvents)
          window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
        d.onmousemove =function(e)
        {
          if(!e)e=window.event;
          var mus=getMouseCoords(e)
          var newW = (winSelf.startW +(mus.x-winSelf.startX));
          var newH = (winSelf.startH +(mus.y-winSelf.startY))
          resizeWin(newW,newH);
        }
        d.onmouseup=function()
        {
          if(winDbox.releaseCapture)
            winDbox.releaseCapture();
          else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
          d.onmousemove=null;
          d.onmouseup=null;
        }
      }
      function resizeWin(newW,newH)
      {
          newW = newW < minW?minW:newW;
          newH = newH < minH?minH:newH;
          winSelf.style.width = newW+"px";
          winSelf.style.height = newH+"px";
          //
          winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
          //
          winContent.style.width = (newW-wX)+"px";
          winContent.style.height = (newH-wH)+"px";
      }
      {
        resizeWin(intW,intH);
        vDrag(o,winTitle);
      }
    }function W_h(name,w,h)
    {
        createWebWindow($(name),w,h);
    }
    //=================Cookie操作================
    function SavePos()//====离开页面时使用cookie保存原来的位置
    {
      var d1=$("testWinA");
      var d2=$("testWinB");
      var data="";
      //注意这里当未移动时,d1.style.left是无法获取到css设置的值的
      if(isNaN(parseInt(d1.style.left)))
        data+="0,0";
      else
        data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
      data+=","+d1.getElementsByTagName("span")[1].getAttribute("lock");//加上了锁定状态在cookie中;
      data+="|";
      if(isNaN(parseInt(d2.style.left)))
        data+="0,0";
      else
        data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
      data+=","+d2.getElementsByTagName("span")[1].getAttribute("lock");//加上了锁定状态在cookie中;
      setcookie("data",data);
    }
    function InitPos()//页面加载时根据cookie初始化位置
    {
      var data=getcookie("data");
      if(data!="")//上次的数据
      {
         var ds=data.split("|");
         var p=ds[0].split(",");
         createWebWindow($("testWinA"),150,175,p[0],p[1],p[2]);
         p=ds[1].split(",");
         createWebWindow($("testWinB"),300,175,p[0],p[1],p[2]);
      }   
      else//默认
      {
        createWebWindow($("testWinB"),300,100);
        createWebWindow($("testWinA"),150,175);
      }
    }
    function getcookie(name)
    {
      var cookief=false;
      var start=0;
      var end=0;
      var cookiestr=document.cookie;
      var i=0;
      while(i<=cookiestr.length)
      {
        start=i;
        end=start+name.length;
        if(cookiestr.substring(start,end)==name)
        {
          cookief=true;
          break;
        }
        i++;
      }
      if(cookief)
      {
       start=end+1;
       end=cookiestr.length;
       return unescape(cookiestr.substring(start,end));
      }
      return "";
    }
    function setcookie(name,value)
    {
      var exp=new Date();
      exp.setYear(exp.getYear()+1);
      document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();//编码:escape();unescape 解码
    }
    function ResetPos()
    {
      var a=$("testWinA");
      var b=$("testWinB");
      a.style.left="15px";
      a.style.top="15px";
      b.style.left="15px";
      b.style.top="15px";
    }
    function Lock(o)
    {
      if(o.getAttribute("lock")=="false")
      {
        o.innerHTML="[解锁]";
        o.setAttribute("lock","true");
      }
      else
      {
        o.innerHTML="[锁定]";
        o.setAttribute("lock","false")
      }
    }
    function IsLock(o)
    {
      if(o.getElementsByTagName("span")[1].getAttribute("lock")=="true")
        return  true;
      else
       return false;
    }
      

  9.   

    呵呵,一看代码那么长我就头疼!!
    拉后的DIV坐标容易获得!
      

  10.   

    showbo。谢谢。。我再加100分给你。剧烈的谢谢。哈哈。。