لماذا يقوم IE9 بالتبديل إلى وضع التوافق على موقع الويب الخاص بي؟

StackOverflow https://stackoverflow.com/questions/3726357

سؤال

لقد قمت للتو بتثبيت IE9 Beta وعلى موقع معين قمت بإنشائه (HTML5) IE9 يقفز إلى وضع التوافق ما لم أخبره يدويًا بعدم ذلك. لقد حاولت إزالة عدة أجزاء من الموقع ولكن لا تغيير. بما في ذلك إزالة جميع CSS يشمل. على موقع آخر لي ، فإنه يسير على ما يرام.

أيضًا ، لا تقم بتعيينها يدويًا لأن IE9 تتذكر إعداد المستخدم ولا يمكنك إعادته إلى التلقائي (أو على الأقل لم أجد كيف ، ولا حتى عن طريق التصفح الخاص وإفراغ ذاكرة التخزين المؤقت)

على أي حال. الموقع الذي يقفز إلى وضع التوافق: http://alliancesatwar.com/guide/
واحد حيث يجعل الصحيح: http://geuze.name/basement/ (لا يمكنني نشر أكثر من ارتباط تشعبي واحد)

كلاهما يستخدم نفس الشيء doctype وكل. هذه المواقع لها الكثير من القواسم المشتركة (بصرف النظر عن المظهر) باستخدام نفس القالب الأساسي (الترميز ، علامات التعريف ، Doctype ونفس JavaScript)

سيكون من الرائع أن يكون لدى شخص ما إجابة لي! موقع HTML5 الذي يقدم في IE7-وضع جميل ... عرجاء.

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

المحلول

يعمل في IE9 DocumentMode بالنسبة لي.

بدون X-UA-Compatible رأس/meta لتعيين وثيقة وثيقة صريحة ، ستحصل على وضع بناءً على:

  • ما إذا كان المستخدم قد نقر على زر "عرض التوافق" في هذا المجال من قبل ؛
  • ربما أيضًا ما إذا كان هذا قد حدث تلقائيًا بسبب بعض المحتوى الآخر على الموقع مما تسبب في تعطل عارض IE8/9 ويعود إلى العارض القديم ؛
  • ما إذا كان المستخدم قد اختار وضع جميع المواقع في عرض التوافق افتراضيًا ؛
  • ما إذا كان IE يعتقد أن الموقع موجود على إنترانت الخاص بك ويتخلف عن عرض التوافق ؛
  • ما إذا كان الموقع المعني في قائمة مواقع الويب الخاصة بـ Microsoft التي تتطلب عرض التوافق.

يمكنك تغيير هذه الإعدادات من "أدوات -> إعدادات عرض التوافق" من قائمة IE. بالطبع ، تم الآن إخفاء هذه القائمة بشكل متسلل ، لذلك لن تراها حتى تضغط على Alt.

بصفتك مؤلفًا للموقع ، إذا كنت واثقًا من أن موقعك يتوافق مع المعايير (يجعله جيدًا في المتصفحات الأخرى ، ويستخدم التوزيع الميزات لتحديد حلول المستعرضات التي يجب استخدامها) ، أقترح استخدام:

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

أو رأس HTTP:

X-UA-Compatible: IE=Edge

للحصول على أحدث عارض أي إصدار IE قيد الاستخدام.

نصائح أخرى

وضعت

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

أول شيء بعد

<head>

(قرأته في مكان ما ، لا أستطيع أن أتذكر)

لم أستطع أن أصدق أنها تعمل !!

لإجبار IE على تقديم في وضع معايير IE9 يجب استخدامك

<meta http-equiv="X-UA-Compatible" content="IE=edge">

قد تتسبب بعض الظروف في القفز إلى أوضاع التوافق. بشكل افتراضي ، يمكن أن يحدث هذا على مواقع إنترانت.

لقد نشرت هذا التعليق على خيط stackoverflow منفصل ، لكنني اعتقدت أن الأمر يستحق التكرار هنا:

لتطبيق ASP.NET الداخلي لدينا ، فإن إضافة علامة "X-UA المتوافقة" على صفحة الويب ، في الويب.

ال فقط كان الشيء الذي نجح لنا هو إيقاف تشغيل هذا الإعداد يدويًا في IE8:

enter image description here

(تنهد.)

يبدو أن هذه المشكلة تحدث فقط مع IE8 و IE9 على مواقع Intranet. ستعمل مواقع الويب الخارجية بشكل جيد وتستخدم الإصدار الصحيح من IE8/9 ، ولكن بالنسبة للمواقع الداخلية الداخلية ، تقرر IE9 فجأة أنه IE7 بالفعل ، وليس لديه أي دعم HTML 5.

لا ، أنا لا أفهم هذا المنطق أيضًا.

لقد كان حلي المتردد اختبار ما إذا كان المتصفح لديه دعم HTML 5 (عن طريق إنشاء قماش ، واختبار ما إذا كان صالحًا) ، وعرض هذه الرسالة إلى المستخدم إذا لم يكن صالحًا:

enter image description here

ليس من السهل بشكل خاص للاستخدام ، ولكن يبدو أن جعل المستخدم يقوم بإيقاف تشغيل هذا الإعداد المزعج هو الطريقة الوحيدة للسماح لهم بتشغيل تطبيقات الويب HTML 5 في المنزل بشكل صحيح.

أو اجعل المستخدمين يستخدمون الكروم. ؛-)

الموقع في http://www.html-5.com/index.html هل يحتوي على علامة التعريف المتوافقة مع X-UA ولكن لا يزال يذهب في عرض التوافق كما هو موضح في أيقونة "صفحة Torn" في شريط العناوين. كيف يمكنك الحصول على خيار القائمة لإجبار IE 9 (الإصدار النهائي 9.0.8112.16421) لتقديم صفحة في وضع المعايير؟ لقد حاولت النقر بزر الماوس الأيمن على أيقونة الصفحة الممزقة بالإضافة إلى خدعة مفتاح "Alt" لعرض خيارات القائمة الإضافية التي ذكرها Rene Geuze ، لكن هؤلاء لم ينجحوا.

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

تبدو جيدة بالنسبة لي:

alt text

أنت متأكد من أنك لم تفعل في الإعدادات على مستوى العالم أو شيء من هذا القبيل؟ هذا تثبيت نظيف للبيتا على نظام التشغيل Windows 7. أبلغت أدوات المطور أن الصفحة تتخلف عن الوضع القياسي لـ IE9.

اضطررت مؤخرًا إلى حل هذه المشكلة وهنا ما فعلته:

بادئ ذي بدء ، هذا الحل هو حول ضبط خادم Apache.

الفكر الرئيسي الثاني هو أن هناك خطأ في IE9 مما يعني أن علامة التعريف لن تعمل ، بدلاً من هذا الحل جرب هذا

  • البحث/افتح httpd.conf
  • uncomment/أو أضف السطر التالي

    LoadModule headers_module modules/mod_headers.so
    
  • أضف الأسطر التالية

    <IfModule headers_module>
        Header set X-UA-Compatible: IE=EmulateIE8
    </IfModule>
    
  • حفظ/أعد تشغيل خادم Apache الخاص بك ،

  • تصفح على صفحتك باستخدام IE9 ، استخدم أدوات مثل Wireshark أو العابث أو استخدم أدوات مطور IE للتحقق من الرأس هناك
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top