2011-07-18 31 views
0

如何让这个脚本IE友好?这是不是IE友好只有部分是变量scrolledtonumheightofbody ...使DOM IE友好

function getheight() { 

      var myWidth = 0, 
     myHeight = 0; 
     if (typeof (window.innerWidth) == 'number') { 
       //Non-IE 
       myWidth = window.innerWidth; 
       myHeight = window.innerHeight; 
      } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
       //IE 6+ in 'standards compliant mode' 
       myWidth = document.documentElement.clientWidth; 
       myHeight = document.documentElement.clientHeight; 
      } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { 
       //IE 4 compatible 
       myWidth = document.body.clientWidth; 
       myHeight = document.body.clientHeight; 
      } 
      var scrolledtonum = window.pageYOffset + myHeight + 2; 
      var heightofbody = document.body.offsetHeight; 
      if (scrolledtonum >= heightofbody) { 
       document.body.scrollTop = 0; 
      } 
     } 

     window.onscroll = getheight; 

     function func() { 
      window.document.body.scrollTop++; 
     } 

     window.document.onmouseover = function() { 
      clearInterval(interval); 
     }; 

     window.document.onmouseout = function() { 
      interval = setInterval(func, 20); 
     }; 

     var interval = setInterval(func, 20); 
+0

在怪癖模式下还是不行? –

+0

@Mike Samuel不在怪癖模式。 – Odinulf

+1

你真的有IE4用户吗?如果没有,则摆脱IE4支持代码。 – Spudley

回答

2

Mozilla的MDN文档scrollY包含示例代码来处理兼容性问题pageYOffset:https://developer.mozilla.org/En/DOM/Window.scrollY

它说以下内容:

对于跨浏览器兼容性,使用window.pageYOffset代替window.scrollY,除了使用

(((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollTop == 'number' ? t : document.body).ScrollTop 

window.pageYOffset(和window.scrollY)是不确定的。

+0

你从来没有给我一个解决方案'document.body.offsetHeight' ... – Odinulf

+0

我添加了代码:(这是它)有什么我在做错了吗? http://pastebin.com/nqaUQTW6 – Odinulf

+0

您可能想要将ScrollTop更改为scrollTop - 它应该区分大小写。 –