Javascript и Doctype в баге Firefox - PullRequest
1 голос
/ 29 ноября 2011

У меня есть этот код 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, проблема в том, что если я добавлю какой-либо тип документа, этот код не работает в Firefox, но работает в IE.Я отлаживаю значения scrollWidth и offsetWidth, и всегда получаю одно и то же значение, это происходит с использованием Doctype.

Любое решение?

1 Ответ

3 голосов
/ 29 ноября 2011

В режиме quirks (без doctype или doctype в режиме quirks) document.body.scrollWidth в некоторых случаях возвращает scrollWidth документа вместо тела.В стандартном режиме (с большинством типов документов) он возвращает scrollWidth тела, а document.documentElement.scrollWidth возвращает scrollWidth документа в некоторых случаях.См. http://dev.w3.org/csswg/cssom-view/#dom-element-scrollwidth для спецификации проекта для этого.

...