我有这个javascript代码:
function pageWidth() {
return (window.innerWidth != null
? window.innerWidth
: (document.body != null
? document.body.offsetWidth
: null
));
}
function bodyloaded() {
winWidth = pageWidth();
window.scroll(0, 0);
scrAmount = Math.floor(
((document.body['scrollWidth'] - document.body.offsetWidth)/2) + 8
);
scrollBy(scrAmount, 0);
}
并应用于onload和onresize方法中的body标记上,问题是如果我放入任何doctype,则此代码不适用于Firefox,但适用于IE。
我调试了scrollWidth和offsetWidth的值,并且始终获得相同的值,这是使用Doctype发生的。
有什么办法吗?
最佳答案
在怪癖模式下(无doctype或怪癖模式doctype),在某些情况下,document.body.scrollWidth
实际上返回文档的scrollWidth而不是正文。在标准模式(具有大多数doctype)中,它返回正文的scrollWidth,在某些情况下,document.documentElement.scrollWidth
返回文档的scrollWidth。有关详细信息,请参见http://dev.w3.org/csswg/cssom-view/#dom-element-scrollwidth。