كما نعلم جميعًا ، فإن أولئك الذين يقومون بالتنمية في الواجهة الأمامية يريدون ركل مطوري أي عدة مرات. لا تقل سمعة مطوري IE من مطوري GFW. إنهم يدمرون السوق ضد ضميرهم ، ويمكن للجميع معاقبتهم. ومع ذلك ، في هذه الأماكن في الصين ، لا توجد وسيلة للانحناء للواقع.
في الآونة الأخيرة ، يحتاج منتجنا إلى تحميل قطعة من CSS في المتصفح ، وتم استخدام الكود السابق مباشرة:
نسخة الكود كما يلي:
var bubblecss = document.createElement ('style') ؛
bubblecss.type = 'text/css' ؛
bubblecss.innerhtml = blc_conf.bubblestyle ؛
document.getElementsByTagName ('head') [0] .AppendChild (bubblecss) ؛
ومع ذلك ، فإن هذا مدعوم فقط من قبل IE9 ، وستكون هناك مشاكل بموجب IE8. لم ألاحظ هذا أبدًا. لم أجدها حتى أجريت مؤخرًا وأجري اختبارًا كاملاً.
لقد وجدت خدعة عبر الإنترنت. جربته وهو يعمل ، ولكن هناك بعض المشاكل
نسخة الكود كما يلي:
window.bc_bubble_css = blc_conf.bubblestyle ؛
Document.CreatesTylesheet ("JavaScript: BC_BUBBLE_CSS") ؛
هنا يمكنك إنشاء نمط محدد بواسطة المتغير bc_bubble_css. ومع ذلك ، نظرًا لأن HTML5 أصبحت شائعة تدريجياً ، يتم خلط بعض محددات CSS3 أيضًا في CSS لدينا. سيؤدي استخدام هذه الطريقة إلى إلقاء استثناء IE8 استثناء عندما يتم تحليل المحلل إلى محدد CSS3 والتوقف عن تحليل CSS اللاحقة. هذا يجعل CSS تحميل فقط في منتصف الطريق. تتمثل الأساليب الموجودة عبر الإنترنت في استخدام AddRule نوع ملاءمة الأنماط لزيادة ، ولكن هذا يتطلب منك تحديد محدد وأسلوب CSS2.
لذلك ، من الضروري تفكيك قاعدة واحدة من CSS ثم استدعاء AddRule بدورها. مثال:
نسخة الكود كما يلي:
var s = document.createstylesheet () ؛
VAR Rules = bLC_CONF.BUBBLISYLE.REPLACE (///*[^/*]*/*// g ، "") .Replace (/@[^{]*/{/g ، '') .Match (/[^/{/}]+/{[^/}]+/}/g) ؛
لـ (var i = 0 ؛ i <rules.length ؛ i ++) {
var m = القواعد [i] .match (/(.*)/ s*/{/s*(.*)/}/) ؛
إذا (م) {
يحاول {
S.Addrule (M [1] ، M [2]) ؛
} catch (e) {
}
}
}
هناك استبدالان في البداية ، إزالة النظرة وجزء من محدد CSS3 ، ولكن لا يزال هناك محددات تفوت الشبكة ، وتحتاج إلى التقاطها لاحقًا من خلال محاولة الصيد.
أيضا ، أنا أحتقر أولئك الذين يصممون واجهات مرة أخرى