2011-07-18 67 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 - 它應該區分大小寫。 –