سؤال

أنا بعمل شبكة الإنترنت حيث بشدة استخدام اياكس يطلب XML الخدمة.في الواقع, الويب الخاص بي هو الواجهة الأمامية مع تقريبا لا server على الإطلاق و يستخدم اياكس على التواصل مع النهاية الخلفية.

كل شيء كان على ما يرام (لقد طورت واختبرت في أوبونتو 9.04 و فايرفوكس 3.0 متصفح).يوم واحد قررت أن أرى كيف الويب الخاص بي في IE8...الرعب!

لا شيء يعمل كما أنه رائع في فايرفوكس.أن تكون أكثر تحديدا ، Request.HTML's لا تعمل.كما قلت الويب تعتمد بشكل كبير على ذلك, لذلك لا شيء يعمل.

قضيت اليوم في محاولة للحصول على شيء تشغيل ولكن لم يكن لدي أي حظ..الاستنتاج الوحيد الذي وصلت كان ملف XML بشكل غير صحيح تحليل (أتمنى أن أكون في الخطأ).دعونا الحصول على كود:

var req = new Request.HTML({
        url: 'service/Catalog.groovy',

        onSuccess: function(responseTree, responseElements) {

            var catz = responseElements.filter('category');
            catz.each(function(cat){
                // cat = $(cat);
                var cat_id = cat.get('id');
                var subcategory = cat.getElement('subcategory');
                alert(cat_id);
                alert(cat.get('html'));
                alert(subcategory.get('html'));
           }
       },
       onFailure: function(){...}

});

على سبيل المثال ، أن قطعة من التعليمات البرمجية.في فايرفوكس, انها عملت تماما.فقد نبهت معرف (على سبيل المثال ، 7), ثم أظهر محتويات الفئة العنصر ، على سبيل المثال:

<subcategory id='1'>
      <category_id>7</category_id>
      <code>ACTIO</code>
      <name>Action</name>
</subcategory>

وبعد ذلك أظهرت محتويات بعض العنصر الداخلي ، في هذه الحالة:

<category_id>7</category_id>
<code>ACTIO</code>
<name>Action</name>

في IE8 ، أول تنبيه عملت موافق (نبهت 7) لكن القادم alert (تنبيه(القط.get('html'));) أعطى سلسلة فارغة وآخر رمى استثناء...وقال شيئا عن فئة فرعية بيينغ null.

ما المبرمة مع كل هذا هو أن العناصر حيث تحليل صحيح في فايرفوكس ، ولكن في IE8 أنا فقط حصلت على علامات و سمات حسنا ، كل شيء آخر كان خاطئا تماما (في الواقع ، في عداد المفقودين).أعني المحتوى الداخلي كل عناصر الاستجابة أين ذهب!

الحقيقة الأخرى يمكن استخدام:هذا الكود:

alert(cat.get('tag')); resulted in
      Firefox: category
      IE8: /category <-----------(?)

همم ما آخر...أوه نعم...خط ترى علق أعلاه (cat = $(cat);) كان شيء حاولت القيام به لحل هذه المشكلة.قرأت في mootools مستندات أن أي حاجة أن تدعو صراحة على $ الدالة على العناصر للحصول على كل عنصر السحر ...ولكن هذا لا إصلاح أي شيء.

كنت يائسة...حتى أنا مغشوش مع حولها mootools.js رمز

حسنا .. ما أريد منك ، عزيزي mootool-برو هو مساعدتي في حل هذه المشكلة ، لأنني حقا بحاجة شبكة الإنترنت إلى وظيفة في IE8 و في الحقيقة أنا اختار mootools أن ننسى مشاكل التوافق...

ps:إذا كان هناك شيء غير واضح يرجى السؤال!أود أن نقدر أي مساعدة :D

هل كانت مفيدة؟

المحلول

لدي مشكلة مشابهة مثل هذا منذ وقت باستخدام مسج.المشكلة أنه في أي الواردة استجابة البيانات اللازمة ليتم التعامل معها من قبل Microsoft.XMLDOM ActiveX كائن.

الخطوات العامة هي:

  1. إنشاء مثيل لكائن ActiveX.

    var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");

  2. تمر الواردة استجابة البيانات وتحميلها.

    oXmlDoc.loadXML(sXmlResponseData);

  3. تحليل ذلك حسب الحاجة.

يمكنك التحقق من كامل القرار هنا.

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