我有这个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发生的。
任何解决方案?
答案 0 :(得分:3)
在怪癖模式下(没有doctype或怪癖模式doctype),document.body.scrollWidth
实际上在某些情况下会返回文档的scrollWidth而不是body。在标准模式下(使用大多数doctypes),它返回正文的scrollWidth,document.documentElement.scrollWidth
在某些情况下返回文档的scrollWidth。有关规范草案,请参阅http://dev.w3.org/csswg/cssom-view/#dom-element-scrollwidth。