دليل مرجعي لأشهر أخطاء العرض البرمجي ومشكلات JavaScript التي كانت تظهر عند صيانة مواقع Internet Explorer (IE8) القديمة.
مشكلات IE8 المعروفة والحلول البديلة
1. أحداث change في عناصر الراديو ومربعات الاختيار
في IE8، لا ينطلق حدث change على <input type="checkbox"> و<input type="radio"> فور النقر؛ بل ينطلق فقط بعد أن يفقد العنصر التركيز.
- الحل البديل: استمع إلى حدث
clickبدلاً منchangeلتحديث الحالة فوراً.
2. عناصر <label> القابلة للنقر والمحيطة بحقول الإدخال
في IE8، لا يؤدي النقر على عنصر <label> يحتوي بداخله على حقل إدخال إلى تبديل حالة الحقل أو التركيز عليه.
- الحل البديل: امنح كل حقل إدخال قيمة فريدة
id="..."، واربطه صراحة عبر<label for="...">.
3. وراثة الشفافية في العناصر الأبناء ذات الموضع
تطبيق filter: alpha(opacity=50); على العنصر الأب لا ينتقل إلى العناصر الأبناء التي تحمل position: relative أو position: absolute.
- الحل البديل: طبّق قاعدة مرشح الشفافية مباشرة على العناصر الأبناء ذات الموضع.
4. مشكلات تفعيل hasLayout (IE6 / IE7)
كانت العديد من أخطاء التخطيط (اختفاء المحتوى أو انهيار نموذج الصندوق) في IE6/7 تحدث عندما يفتقر العنصر إلى أبعاد تخطيط داخلية.
- الحل: فعّل
hasLayoutباستخدامzoom: 1;في CSS.