document.documentElement.scrollLeft In google chrome

edited 十月 2013 in Javascript
1.在xhtml宣告下
2.document.documentElement.scrollLeft<--我記得這是xhtml公規
3.在google chromec (var 4.1.249.1045),竟然只會取到0?
4.必須使用舊規的document.body.scrollLeft
這..怎麼回事呢?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=5071

評論

  • edited 四月 2010
    http://code.google.com/p/chromium/issues/detail?id=2891
    這是chrom這個問題的討論串
    另外忘記在哪裡看到說是有關瀏覽器quirks與strict模式
    (不過這個看了頭好痛...一時之間想不起來網站)

    抱歉再補充一下...
    我自己的印象中,看見有至做那種會隨著頁面捲動而跟著移動的JAVA選單,
    該網頁的原始碼我看到的宣告都是<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">有的甚至怕問題乾脆都不宣告了-_-|||
  • edited 四月 2010
    目前看來是chrome單方面的問題,只想到暫時用下面的方式處理
    function MoveDiv(id,WantTop,WantLeft) 
    {
    	if (document.body.scrollTop != 0) 
    	{
    		RealTop = parseInt(document.body.scrollTop);
    	}
    	else
    	{
    		RealTop = parseInt(document.documentElement.scrollTop);
    	}
    	if (document.body.scrollLeft != 0) 
    	{
    		RealLeft=parseInt(document.body.scrollLeft);	
    	}
    	else
    	{
    		RealLeft=parseInt(document.documentElement.scrollLeft);	
    	}
    	TrueTop=WantTop+RealTop;
    	getID(id).style.top=TrueTop+'px';
    	TrueLeft=WantLeft+RealLeft;
    	getID(id).style.left=TrueLeft+'px';
    }
    
  • edited 四月 2010
    SoltyRain大,我後來找到一些人的解法是直接設定
    "= document.body.scrollTop + document.documentElement.scrollTop"
    他們這樣設計的原因似乎是肯定不管在哪套瀏覽器,其中一項一定會是0
    所以就乾脆通通加起來說
Sign In or Register to comment.