日期:2014-05-17  浏览次数:20615 次

DOCTYPE html PUBLIC 让部分js代码失效的解决方案
在javascript里面调用一些属性的名称发生了改变 我说怎么得不到document.body.scrollTop的值 
以后js脚本取document值时候有问题估计就是这里弄出来的~~ 

很明显 使用了DOCTYPE html PUBLIC脚本之后document.body.scrollTop必须用document.documentElement.scrollTop来调用~document.documentElement.scrollLeft也是~ 
诸如此类都要改 

在定义了DOCTYPE之后,使用document.documentElement.scrollLeft代替document.body.scrollLeft。同理使用document.documentElement.scrollTop代替document.body.scrollTop。 

这样在有DOCTYPE的时候,图层也可以滚动了。 

但是,在没有DOCTYPE的时候document.documentElement.scrollLeft也永远为零了,那么,能否有一个在有没有DOCTYPE定义都可以用的方案涅?嘿嘿。 

那就可以这样写:



function scrollTop() //浏览器滚动条位置 

var scrollTop; 
if (document.documentElement && document.documentElement.scrollTop){ 
scrollTop = document.documentElement.scrollTop; 
}else if (document.body){ 
scrollTop = document.body.scrollTop; 
}else if (window.pageYOffset){ 
scrollTop = window.pageYOffset; 

return scrollTop; 


------------------------------------------------

<!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>定义了 HTML's DOCTYPE 的 Event 事件</title>
<script language="JavaScript" type="text/javascript">
function getvalue(e){
  if (!document.all){
  winW = window.innerWidth;
  winH = window.innerHeight;
  curX = e.pageX - window.pageXOffset;
  curY = e.pageY - window.pageYOffset;
  mouX = e.pageX;
  mouY = e.pageY;
  broX = window.pageXOffset;
  broY = window.pageYOffset;
  }else{
  winW = document.documentElement.clientWidth;
  winH = document.documentElement.clientHeight;
  curX = event.clientX;
  curY = event.clientY;
  mouX = event.clientX + document.documentElement.scrollLeft;
  mouY = event.clientY + document.documentElement.scrollTop;
  broX = document.documentElement.scrollLeft;
  broY = document.documentElement.scrollTop;
  }
  alert(" 窗口可见宽度(winW): "+winW+"\n\n 窗口可见高度(winH): "+winH+"\n\n 距窗口左边距离(curX): "+curX+"\n\n 距窗口顶部距离(curY): "+curY+"\n\n 距页面左边距离(mouX): "+mouX+"\n\n 距页面顶部距离(mouY): "+mouY+"\n\n 页面滚动的宽度(broX): "+broX+"\n\n 页面滚动的高度(broY): "+broY);
  return true;
}
document.onclick=getvalue;
</script>
</head>

<body>
<img src="" width="400" height="500" alt="" />
</body>
</html>