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

Почему хром бросает "Ошибка нечистоты: NOT_FOUND_ERR: DOM Exception 8" здесь?

Ниже приведен код моей обертки YWA

var astr_ywascript = (document.createElement("script").type = "text/javascript").src = "http://d.yimg.com/mi/eu/ywa.js";
document.head.appendChild(astr_ywascript); // <- error on this line

Он запускается при загрузке страницы, поэтому нет смысла, что JS не может найти тег заголовка документа.

Любые идеи?

Спасибо


Opera выдает эту ошибку в той же строке. Uncaught exception: Error: WRONG_ARGUMENTS_ER Firebug говорит: document.head is undefined [Break On This Error] document.head.appendChild(astr_ywascript);

4b9b3361

Ответ 1

В строке

(document.createElement("script").type = "text/javascript").src

вы устанавливаете свойство src для строки. Назначение в круглых скобках возвращает заданное значение. Вы делаете ту же ошибку позже в строке, в конечном итоге присваивая "http://d.yimg.com/mi/eu/ywa.js" astr_ywascript

Разделите его на отдельные строки:

var el=document.createElement("script");
el.type="text/javascript"
el.src=...
document.head.appendChild(el);

Raw Javascript редко ведет себя в жидком способе, с которым вы привыкли с jQuery.

Вы также можете получить голову следующим образом:

document.getElementsByTagName("head")[0]

Ответ 2

Я получил эту ошибку с Backbone.js, потому что я делал:

$('#backbone').html(@view.render())

Вместо

$('#backbone').html(@view.render().el)

Как я должен был это сделать. Все еще не знаю, что такое этот "эл" бизнес, но я уверен, что скоро это выясню.

Ответ 3

Просто добавьте этот ответ для людей, которые могли бы ударить по этой странице, как это было во время поиска ответа на ошибку "Uncaught Error: NOT_FOUND_ERR: DOM Exception 8.

У меня была эта ошибка в Chrome. В моем случае я использовал .appendChild(ttt);

Проблема заключалась в том, что ttt был объектом массива вместо div, который я планировал добавить.

Итак, убедитесь, что вы добавляете на самом деле объект DOM, а не случайно другой тип объекта.