سؤال

لقد كنت أحارب وضع توافق IE8 طوال اليوم ، وأنا على وشك تشاك من الطوب في ذلك.

لدي بعض التعليمات البرمجية ، التي تستخدم jQuery 1.2 (نعم إنها قديمة - لا يمكن تغيير ذلك) ، للبحث عن بعض السجلات في تطبيق الويب الخاص بنا. يمكن النقر فوق نتائج البحث لعرض محتويات السجل (باستخدام .animate () يفتح مساحة أسفل الصف وإنشاء TR آخر أسفله وإدراج بيانات HTML من خلاصة JSON).

في IE8 ، النقر على نتيجة لعرض المحتوى يجبره على إعادة التحميل في وضع التوافق ، حيث يعمل بشكل جيد في جميع المتصفحات الأخرى (IE7 ، FF3.0+، Chrome ، Safari). لقد كنت أحاول استخدام شريط أدوات المطورين الخاص بـ IE8 لتصحيح وتتبع سبب حدوث ذلك ، لكنني لم أتمكن من العثور على أي خطأ أو أي دليل على ما قد يسبب ذلك.

الكود الذي يظهر المعاينة:

// Code that binds a click to open the result preview:
var _tr = $('<tr class="outline" id=' + val.assessment.assessmentId + '></tr>').bind("click", msi.reuseAssessment.preview);

...

// in msi.reuseAssessment.preview()
var url = "/direct/msi-assessment/" + assessmentId + "/assessmentHtml.json?no-cache=true";
jQuery.ajax({
    type: "GET",
    url: url,
    dataType: "json",
    success: function(d, textStatus){
        var _content = d.assessmentHtml;
        var _preview = $("<tr id=" + assessmentId + "></tr>");

        // loadContent 
        _tr.after(_preview.animate({
            height: 50
        }, 500, 0, function() {
            msi.reuseAssessment.drawPreview(this, _content); // Puts the content from the json into a td
        }));
    },
    error: function(xmlHttpReq, status, errorThrown) {
        // display error msg
    }
});

عند التنقل عبر الكود باستخدام أدوات مطور IE8 ، يتم تمريره هنا وفي مكان ما إلى رمز jQuery وهذا عندما يتم تحديثه في وضع التوافق. لقد قمت بالتحقق من صحة JSON ، رمز HTML الذي يخرج مع W3C وكل شيء على ما يرام ، أنا حقًا في حيرة بشأن ما يحدث.

هل يعرف أي شخص كيف يمكنني تتبع ما يسبب ذلك بشكل أفضل ، أو هل يجب أن أجبر IE7 على هذه الصفحات؟

تحرير: يتم إجراء البحث في "ajax" منبثقة يظهر فوق الجزء العلوي من الشاشة. يتم تحميل القالب (قاعدة HTML) من ملف HTML منفصل ، ويتم حقنه في DIV في أسفل الصفحة الأصلية. هذا يعني أنه سيكون هناك ملفات HTML متداخلة (مع <html></html> العلامات وما إلى ذلك). هل سيؤثر هذا أيضًا؟
تحرير 3: إزالة هذه العلامات المكررة لم يصلح المشكلة.

تحرير 2: لا يزال لم يحل هذا. هل هو مجرد واحد من تلك الأشياء التي لن يعرضها IE8 بشكل صحيح وتضعها في متصفح Quirk؟ سأقدر حقًا بعض المساعدة في هذا.

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

المحلول 3

بعد أن قام زميل ببعض البحث أيضًا ، وجدنا هذا هنا على ذلك, ، حيث تم التأكيد على أن Max-Height يسبب تأكيدًا صعبًا في IE8 ، مما يؤكد أنه ، في الواقع ، خطأ في IE8 كما نشرت Ericlaw.

كنا نستخدم Max-Height لأسلوب Div الذي كنا ندخل المحتوى في ، وبالتالي ، مما تسبب في التأكيد الثابت. السؤال المرتبط أعلاه لديه عمل حول أي شخص آخر يواجه هذه المشكلة.

نصائح أخرى

بواسطة يجبرها على إعادة التحميل في وضع التوافق هل تقصد أنك تحصل على إشعار بالون Flyout الذي يقول شيئًا مثل: "واجه Internet Explorer مشكلة في هذه الصفحة وقام بتحميله في وضع التوافق"؟

إذا كان الأمر كذلك ، فهذا يعني أنك ضربت خطأ في IE. يُطلق عليه "التأكيد الصعب" ، فهذا يعني أن محرك التصميم قد تم تصطدمه (وليس AV أو أي شيء مثير ، لقد دخل في حالة غير قابلة للاسترداد) وبالتالي يحاول أن تزود المستخدم بـ بعض المحتوى باستخدام محرك التصميم الأقدم.

إذا كانت المشكلة لا تزال تحدث في IE9 ، فيرجى تقديم خطأ في http://connect.microsoft.com/ie

شكرًا!

هل تأكد من أن Doctype و X-UA متوافقان

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

وأضف هذا بعد <head>

<meta http-equiv="X-UA-Compatible" content="IE=8">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top