في هذه المقالة، سأقوم بإيجاز بإيجاز بالعديد من جوانب بناء جملة JavaScript التي تختلف بين Internet Explorer وFirefox.
1. خاصية CSS "العائمة".
الصيغة الأساسية للحصول على خاصية CSS محددة لكائن معين هي الخاصية object.style، والخصائص الموصولة تستخدم الترميز الجملي بدلاً من ذلك. على سبيل المثال، للحصول على سمة لون الخلفية لقسم بمعرف "الرأس"، نحتاج إلى استخدام الصيغة التالية:
1px
Solid #ccc";
"float" هي كلمة محجوزة في JavaScript، ولا يمكننا استخدام object.style.float للحصول على السمة "float". إليك كيفية استخدامه في كلا المتصفحين:
بناء جملة IE:
document.getElementById("header").style.styleFloat = "left"
;
document.getElementById("header").style.cssFloat = "left";
2. نمط العنصر المحسوب
باستخدام object.style.property أعلاه، يمكن لـ JavaScript بسهولة الحصول على نمط CSS المحدد للكائن وتعديله. لكن الحد من بناء الجملة هذا هو أنه يمكنه فقط الحصول على الأنماط المضمنة في HTML، أو الأنماط التي يتم تعيينها مباشرة باستخدام JavaScript. لا يمكن لكائن النمط الحصول على مجموعة أنماط باستخدام أوراق أنماط خارجية. للحصول على "النمط المحسوب" لكائن نستخدم الكود التالي:
بناء جملة IE:
var myObject = document.getElementById("header");
var myStyle = myObject.currentStyle.backgroundColor
;
var myObject = document.getElementById("header");
var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
var myStyle = myComputedStyle.backgroundColor
3. احصل على سمة "الفئة" للعنصر
كما هو الحال مع السمة "العائمة"، يستخدم المستعرضان أساليب JavaScript مختلفة للحصول على هذه السمة.
بناء جملة IE:
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("className")
;
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("class");
4. احصل على السمة "for" الخاصة بملصق التسمية
مثل 3، هناك أيضًا صيغ مختلفة لاستخدام JavaScript للحصول على السمة "for" الخاصة بالتسمية.
بناء جملة IE:
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor")
;
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");
يتم استخدام نفس الصيغة لطريقة setAtrribute.
5. احصل على موضع المؤشر
يعد الحصول على موضع المؤشر لعنصر ما أمرًا نادرًا، وإذا كنت بحاجة إلى القيام بذلك، فإن بناء الجملة يختلف في IE وFirefox. يعد نموذج التعليمات البرمجية هذا أساسيًا إلى حد ما ويستخدم عادةً كجزء من العديد من معالجات الأحداث المعقدة ويستخدم فقط لوصف الاختلافات. تجدر الإشارة إلى أن النتائج في IE تختلف عن تلك الموجودة في Firefox، لذلك هناك بعض المشاكل في هذه الطريقة. في كثير من الأحيان، يمكن تعويض هذا الاختلاف عن طريق الحصول على "موضع التمرير" - ولكن هذا موضوع لمقالة أخرى.
بناء جملة IE:
var myCursorPosition = [0, 0];
myCursorPosition[0] = events.clientX;
myCursorPosition[1] = بناء جملة
Firefox:
var myCursorPosition = [0, 0];
myCursorPosition[0] = events.pageX;
myCursorPosition[1] = events.pageY;