سؤال

وأنا أحاول لتحميل أجزاء من XHTML الترميز باستخدام وظيفة $.fn.load مسج، لكنه يثير خطأ أثناء محاولة إضافة الزيادة الجديدة في DOM. لقد ضاقت هذه صولا الى إعلان XML (<?xml...?>) - وجهة النظر يعمل إذا أعود نص ثابت دون إعلان. أنا لا أفهم لماذا هذا من شأنه أن يسبب الفشل، أو إذا يكمن اللوم في مسج، فايرفوكس، أو قانون بلدي.

وكيف يجب أن إدراج شظايا XHTML في DOM باستخدام مسج؟


<ع> استخدام $. احصل لا يعمل - الاستدعاء يتلقى كائن Document، وعندما أحاول أن أدخله في DOM، I تظهر رسالة الخطأ التالية:

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>
هل كانت مفيدة؟

المحلول

وحاول هذا بدلا من ذلك (أنا فقط لم اختبار سريع ويبدو أن العمل):

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

والأساس، و. الأطفال () سوف تحصل عقدة الجذر واستبدال محتوى شعبة الخاص به. اعتقد انك لا يمكن إدراج بالضبط وثيقة XML مع <إعلان أكس في DOM ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top