Как именно это относится к jQuery? Я знаю, что библиотека использует встроенные функции javascript для внутреннего использования, но что именно она пытается делать, когда возникает такая проблема?
javascript
jquery
domexception
Джулиан Ваймер
источник
источник
response.xml
где это возможно. Например,$(e).append(response.xml || $(response));
Если вы получаете эту ошибку из-за jquery ajax, вызовите $ .ajax
Затем вам может понадобиться указать, что dataType возвращается с сервера. Я много исправил ответ, используя это простое свойство.
источник
В частности, с помощью jQuery вы можете столкнуться с этой проблемой, если при создании элементов забудете про символы тега html:
Возникнет эта ошибка, потому что вы имели в виду
источник
Эта ошибка может возникать, когда вы пытаетесь вставить в DOM узел с недопустимым HTML-кодом, который может быть таким же тонким, как неправильный атрибут, например:
источник
@ Келли Нортон прав в своем ответе
The browser thinks the HTML you are attempting to append is XML
и предлагаетspecifying the content type when fetching via XHR
.Это правда, однако вы иногда используете сторонние библиотеки, которые не собираетесь изменять. Это JQuery UI в моем случае. Затем вы должны предоставить право
Content-Type
в ответе вместо переопределения типа ответа на стороне JavaScript. УстановитеContent-Type
для себя,text/html
и вы в порядке.В моем случае это было так же просто , как переименование
file.xhtml
доfile.html
- сервер приложения имели некоторое расширение к MIME типов отображений из коробки. Когда содержимое является динамическим, вы можете как-то установить тип содержимого ответа (например,res.setContentType("text/html")
в Servlet API).источник
Вы можете увидеть эти вопросы
Получение HIERARCHY_REQUEST_ERR при использовании Javascript для рекурсивной генерации вложенного списка
или
Диалог jQuery UI с обратной передачей кнопки ASP.NET
Вывод
когда вы пытаетесь использовать функцию append, вы должны использовать новую переменную, как в этом примере
В приведенном выше примере использует var "dlg" для запуска функции appendTo. Тогда ошибка «HIERARCHY_REQUEST_ERR» больше не будет появляться.
источник
Я столкнулся с этой ошибкой при использовании дополнения Google Chrome Sidewiki. Отключение решило проблему для меня.
источник
Я собираюсь добавить еще один конкретный ответ здесь, потому что это был двухчасовой поиск ответа ...
Я пытался вставить тег в документ. HTML был такой:
Если вы заметили, тег закрыт в предыдущем примере (
<area/>
). Это не было принято в браузерах Chrome. w3schools, похоже, считает, что он должен быть закрыт, и я не смог найти официальную спецификацию по этому тегу, но он точно не работает в Chrome. Firefox не примет это с помощью<area/>
или<area></area>
или<area>
. Хром должен иметь<area>
. IE принимает все.В любом случае, эта ошибка может быть из-за того, что ваш HTML неверен.
источник
Я знаю, что эта ветка старая, но я столкнулся с другой причиной проблемы, которая может оказаться полезной для других. Я получаю сообщение об ошибке, когда Google Analytics пытается добавить себя в комментарий HTML. Оскорбительный код:
Это было причиной ошибки, потому что моим первым элементом был комментарий HTML (а именно код шаблона Dreamweaver).
Я изменил оскорбительный код на что-то по общему признанию не пуленепробиваемое, но лучше:
источник
Если вы столкнулись с этой проблемой при попытке добавить узел в другое окно в Internet Explorer, попробуйте использовать HTML внутри узла вместо самого узла.
IE не поддерживает добавление узлов в другое окно.
источник
Эта ОШИБКА произошла со мной в IE9, когда я попытался динамически присоединить Child к объекту, который уже существовал в окне A. Окно A создаст дочернее окно B. В окне B после некоторого действия пользователя будет запущена функция и выполнит appendChild на элемент формы в окне A, используя
window.opener.document.getElementById('formElement').appendChild(input);
Это может привести к ошибке. То же самое с созданием элемента input с использованием
document.createElement('input');
в дочернем окне, передачей его в качестве параметра вwindow.opener
окно A и добавлением. Только если бы я создал элемент ввода в том же окне, в которое я собирался добавить его, он успешно завершился бы без ошибок.Таким образом, мой вывод (пожалуйста, подтвердите): ни один элемент не может быть динамически создан (использован
document.createElement
) в одном окне, а затем добавлен (использован.appendChild
) к элементу в другом окне (не предпринимая, возможно, какой-то дополнительный шаг, который я пропустил, чтобы убедиться, что он не считается XML или что-то). Это терпит неудачу в IE9 и выдает ошибку, в FF это работает все же хорошо.PS. Я не использую jQuery.
источник
Другая причина, по которой это может появиться, заключается в том, что вы добавляете данные до того, как элемент готов, например
В этом случае вам нужно переместить скрипт после. Не совсем уверен, что это кошерно, но перемещение скрипта после тела, похоже, не помогает: /
Вместо перемещения сценария вы также можете добавлять в обработчик событий.
источник
Я получил эту ошибку, потому что я забыл клонировать свой элемент.
источник
Просто для справки.
IE будет блокировать добавление любого элемента, созданного в другом контексте окна, из контекста окна, к которому добавляется элемент.
например
Я еще не понял, как создать элемент dom с помощью jQuery, используя другой контекст окна.
источник
Я получаю эту ошибку в IE9, если у меня отключена опция отладки скриптов (Internet Explorer). Если я включаю отладку сценария, я не вижу ошибки, и страница работает нормально. Это кажется странным, что исключение DOM связано с включенной или отключенной отладкой.
источник