Подтвердить что ты не робот

JQuery Prepend: невозможно вызвать метод 'createDocumentFragment' из null

Во время запуска страницы я пытаюсь добавить элемент в DOM.

У меня есть следующий код:

$(document).ready(function () {
    $(document).prepend("<div id=new_div style=z-index:1;></div>");
});

Я тестировал это на FF21, Chrome27 и IE10. Все они возвращают ошибку, указанную в заголовке (точная формулировка относится к отладчику Chrome).

Отладка jquery-1.10.0.js, я отследил проблему до строки 5998, где

safeFrag = document.createDocumentFragment()

По-видимому, документ имеет значение null. Подводя трассировку стека до domManip в строке 6249, объект передается как this[ 0 ].ownerDocument, который является нулевым.

Я отключил javascript на странице, чтобы просто загрузить jQuery и запустить эту команду, и проблема не устранена.

Смотрите этот jsFiddle, предупреждение не появляется, что означает, что механизм javascript застрял на линии раньше.

Помогите оценить.

4b9b3361

Ответ 1

Не имеет смысла пытаться добавить элемент в начало объекта document. Это не HTMLElementNode. Насколько я знаю, вы не можете дать ему дополнительных детей.

Если вы хотите добавить элемент div в начало чего-то, то самым высоким node, которому разрешено его содержать, является элемент body, поэтому используйте:

$(document.body).prepend

... вместо этого.