كيف يمكنني إظهار رسالة إلى IE6/IE7 المتصفحات للترقية إلى IE8 و IE8 لا تظهر IE7 التحذير ؟

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

سؤال

أريد أن تسمح فقط للمستخدمين مع IE8 (لا IE6, IE7) أو متصفح آخر للوصول إلى الموقع عند تسجيل الدخول.

تابعت: http://code.google.com/p/ie6-upgrade-warning/ ولكن أردت أيضا أن لا تسمح IE7 للمستخدمين استخدام الموقع الرئيسي عند تسجيل الدخول (يمكن عرض الصفحات العامة.) والسبب هو أن تطبيق ويب لديها الكثير من جافا سكريبت الآثار التي سوف تعمل فقط 100% في IE8 طريقة التقديم (أو أي متصفح آخر وبصرف النظر عن أي.)

المشكلة مع تعديل ie6 تحذير الترقية إلى ie7 هو أنه بدا مثل IE8 عرض صفحتي في IE7 طريقة التقديم و "الأكاذيب" عن كونها ie7 و يتسبب في IE7 أنماط الرمز.

فكيف يمكنني أن القوة IE8 أن يجعل دائما صفحتي في IE8 الوضع ؟

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

المحلول

استخدم هذه العلامة:

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

نصائح أخرى

وتصحيح لمثال AdamSane ل:

<اقتباس فقرة>   

و<!--[if lt IE 8]> Special instructions for IE 7 or less here <![endif]-->

وهنا هو وجود صلة الجيد أن أقترح بعض الحلول

http://garmahis.com/tools/ie6-update-warning/

وشخصيا أحب الحل الرابع ( http://www.browser-update.org/ )

ومجرد قطعة من الكعكة

وأنا شخصيا أوصي للمستخدمين لترقية IE لأسباب أمنية. وأود أن استخدام تعليق مشروط لاستهداف المتصفحات دون IE8.

      <!--[if lt IE 8]>You are using an outdated version of Internet Explorer.  For security reasons you should upgrade your browser. Please go to Windows Updates and install the latest version.<![endif]-->

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

وبدلا من محاولة لاجبار IE 8+ الوضع، وأنا استخدم مزيجا من التعليقات المشروطة وشيك جافا سكريبت بسيط. تم إضافة خاصية document.documentMode إلى IE في الإصدار 8، لذلك إذا كان موجودا على الإطلاق (بغض النظر عن قيمتها، على الرغم من أنه يجب أن يكون 7 مع هذا الرمز) وهو ما يعني أننا في وضع التوافق، وينبغي أن لا تظهر تحذير:

<!--[if lte IE 7]>
    <script>
        if (!document.documentMode) { //if documentMode exists, this is a later IE in compatibility mode
            showBadBrowserMessage();
        }
    </script>
<![endif]-->

وهنا هو هذا السيناريو البارد الذي يعمل لجميع المتصفحات القديمة:

<script type="text/javascript"> 
    var $buoop = {vs:{i:7,f:5,o:12,s:5,n:9}}; 
    $buoop.ol = window.onload; 
    window.onload=function(){ 
     try {if ($buoop.ol) $buoop.ol();}catch (e) {} 
     var e = document.createElement("script"); 
     e.setAttribute("type", "text/javascript"); 
     e.setAttribute("src", "//browser-update.org/update.js"); 
     document.body.appendChild(e); 
    } 
</script> 

ملحوظة: اذا كان الزائر يتجاهل النصيحة، فإنه لن تظهر مرة أخرى لبعض الوقت

.

وأكثر يمكن العثور عليها هنا

ويعتمد على الطريقة التي قد مشفرة الخاص بك (X) HTML، ولكن ينبغي IE8 استخدام وضع معايير (وليس وضع IE7) إذا كان لديك نوع مستند صارم مثل:

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

في الجزء العلوي من ملفات HTML الخاص بك.

XHTML 1.0 المواصفات - بدقة المستندات المطابقة

وهنا وظيفة جيدة حول كيفية doctypes مختلفة / الخ تؤثر على طريقة تقديم IE8 و: <لأ href = "http://blogs.msdn.com/askie/archive/2009/03/23/understanding-compatibility-modes-in -internet-المستكشف-8.aspx "يختلط =" نوفولو noreferrer "> وسائط التوافق فهم في Internet Explorer 8

وربما أن أفضل طريقة ليكون الكشف عن سلسلة متصفح عامل المستخدم الخاص بالمستخدم وتوجيهها إلى صفحة تطلب منهم لرفع مستوى (أو تحميل متصفح آخر مثل فايرفوكس أو كروم) إذا كانت تستخدم نسخة قديمة من إنترنت إكسبلورر. تستطيع أن ترى أمثلة من وكلاء المستخدم من IE 7 و 8 على هذا <وأ href = "http://blogs.msdn.com/ie/archive/2009/01/09/the-internet-explorer-8-user- وكيل سلسلة المحدثة-edition.aspx "يختلط =" نوفولو noreferrer "> IE المطور دخول بلوق . الإصدارات القديمة من IE تتبع نمطا مماثلا.

وهناك شيء واحد يجب أن لا تفعل، ومع ذلك، هو أن نفترض أن أي سلسلة عامل المستخدم عدم اتباع نمط معين غير صالحة. انظروا فقط لMSIE ([0-9]) ومعرفة ما اذا كان في النطاق؛ لو كان ناقصا تماما، افترض ويدعم المتصفح. اذا كان MSIE 7، ثم مزيد من التحقق من وجود علامة تشير إلى وضع التوافق ترايدنت (وأفترض، يطلب من المستخدم لإيقاف تشغيله). وهذا سوف يسمح للمتصفحات الأخرى مغرور، في المستقبل أن تكون هناك فرصة القتال في جعل صفحتك دون تحويلها بعيدا عند الباب:)

كما ذكر أقترح أن أفضل طريقة لتحقيق ذلك هو استخدام التعليقات المشروطة تشمل الأنماط المحددة لجميع إصدارات IE في وقت سابق من 8:

<!--[if lt IE 8]> Include CSS here <![endif]-->

وشملت CSS يمكن تعيين تحذير تكون مرئية أو ربما تمكين تراكب على الصفحة التي 'تأمين' المستخدمين.قد تكون فكرة جيدة أن تتضمن بعض القواعد التي تخفي العناصر الهامة على الصفحة التي يمكن أن خلاف ذلك الخلط بين المستخدم إذا كانت لا تعمل على النحو المنشود.

الخيار الآخر هو أن إعادة توجيه المستخدم إلى صفحة أخرى أنا لست مروحة ضخمة من الموجهات ولكن إذا ما استخدمت مع الرعاية التي يمكن أن تكون حلا مناسبا.

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

من ناحية أخرى, قد يكون لديك السيطرة على الأنظمة المستخدمة من قبل المنظمة باستخدام موقع الويب الخاص بك في هذه الحالة ربما كنت موافق قفل الناس من أجل عدم استخدام النظم القياسية.

ويمكنك استخدام CSS المشروطة تعليقات

<!--[if IE 8]>
Special instructions for IE 6 here
<![endif]-->
<ع> استخدام جافا سكريبت يمكنك أن تطلب المتصفح الذي قد ارسلت طلب>

<script type="text/javascript">
function detectBrowser()
{
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
if (browser=="Microsoft Internet Explorer")
  && (version>=8))
  {
  alert("Your browser is good enough!");
  }
  else
  {
  alert("It's time to upgrade your browser!");
  }
  }
 </script>

هو هذا الطرف ؟ ><

هو, ولكن أعتقد أن المعلومات هنا يمكن تحديثها قليلا.

بمقاييس اليوم ، "اليوم" أن 29 أكتوبر 2013, يمكنك استخدام هذه العلامة الوصفية لتحريك أحدث متصفح IE وثيقة طرق تؤدي إلى تثبيت جوجل كروم الإطار في السن المنشأ:

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

هذا يسمح لك أن خادم محددة IE6/7 أنماط.نضع في اعتبارنا أن أقوله "أنماط "' لا 'أوراق الأنماط', بمعنى:كنت فقط استخدام ملف CSS واحد و في كل IE6 و IE7 الأساليب.هذا هو تقليل طلبات HTTP...ولكن هذا مختلف تماما المحادثة.

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

ملاحظة: جوجل كروم الإطار سيتم تقاعد في يناير / كانون الثاني 2014 - مزيد من المعلومات هنا.

والفكرة ذاتها التي كنت "حظر" IE 6 و 7 المستخدمين من موقع الويب الخاص بك أمر مثير للسخرية. وهناك الكثير من الناس لا يمكن ترقية المتصفح أو تثبيت بعضها البعض بسبب القيود المفروضة على العمل أو لأنهم لا يعرفون كيف. منع هؤلاء الناس من استخدام موقع الويب الخاص بك سوف فقط يكلفك المستخدمين في المدى الطويل.

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

وتحرير: نشرت لي بعض مزيد من المعلومات في تعليق أدناه والتي ينبغي أن تكون حقا في هذا المنصب:

وانها في كثير من الأحيان من الممكن كشف IE والعمل حوله. الجحيم، يمكنك حتى استخدام التعليقات المشروط لتحميل نسخة مختلفة من جافا سكريبت. باستخدام إطار JS سوف مجردة بعيدا عن الاختلافات بين المتصفحات إلى مستوى لا تحتاج للقلق. أو مجرد الاستيلاء IE7.js والعصا التي على الموقع - أسمع يحصل كانت الأمور تعمل وكأنك لا يؤمنون.

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