Загрузка фрагментов XHTML через AJAX с помощью jQuery - PullRequest
9 голосов
/ 01 октября 2008

Я пытаюсь загрузить фрагменты разметки XHTML с помощью функции $.fn.load jQuery, но возникает ошибка при попытке добавить новую разметку в DOM. Я сузил это до объявления XML (<?xml...?>) - представление работает, если я возвращаю статический текст без объявления. Я не понимаю, почему это может привести к сбою или если вина лежит на jQuery, Firefox или моем коде.

Как мне вставить фрагменты XHTML в DOM с помощью jQuery?


Использование $ .get не работает - обратный вызов получает объект Document, и когда я пытаюсь вставить его в DOM, я получаю следующую ошибку:

uncaught exception: Node cannot be inserted at the specified point in the hierarchy (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)
http://localhost:8000/static/1222832186/pixra/script/jquery-1.2.6.js
Line 257

Это мой код:

$body = $("#div-to-fill");
$.get ("/testfile.xhtml", undefined, function (data)
{
    console.debug ("data = %o", data); // data = Document
    $body.children ().replaceWith (data); // error
}, 'xml');

Пример ответа:

<?xml version="1.0" encoding="UTF-8"?>
<div xmlns="http://www.w3.org/1999/xhtml">
  <form action="/gallery/image/edit-description/11529/" method="post">
    <div>content here</div>
  </form>
</div>

1 Ответ

15 голосов
/ 01 октября 2008

Попробуйте вместо этого (я только что сделал быстрый тест, и это похоже на работу):

$body = $("#div-to-fill");
$.get ("/testfile.xhtml", function (data)
{
    $body.html($(data).children());
}, 'xml');

Обычно, .children () получает корневой узел и заменяет им содержимое вашего div. Я думаю, вы не можете точно вставить XML-документ с объявлением <? Xml в DOM ... </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...