Обычная причина, по которой document.body
равен нулю, заключается в том, что вы выполняете скрипт до того, как встретится тег <body>
(*). Не видя код, я не могу сказать наверняка, но это было бы обычной причиной. Переместитесь туда, куда вы положили сценарии.
(*: или другой элемент, такой как <p>
, который, как известно браузеру, не может появиться вне тела, и в этом случае он молча добавляет <body>
, чтобы исправить вашу отсутствующую разметку. Разница в разборе некоторых теги «обычно в теле» могут объяснить, почему Safari позволяет вам сойти с рук.)
Может ли это быть причиной того, что у FF возникли проблемы с телом?
Нет. Это сломанная разметка, и Drupal не должен этого делать, но закрытие </body>
не останавливает document.body
, ссылающуюся на соответствующий DOM Node.
Можно ли как-нибудь использовать jQuery для пополнения документа. Body
Нет, document.body
отражает только в основном то же, что и document.getElementsByTagName('body')[0]
, поэтому пытаться установить его не имеет смысла, и если вы не можете найти тело с document.body
, jQuery не сможет найти это с $('body')
либо.