В этой статье я кратко опишу несколько аспектов синтаксиса JavaScript, которые различаются в Internet Explorer и Firefox.
1. Свойство CSS «float»
Основным синтаксисом для получения определенного свойства CSS данного объекта является свойство object.style, а в свойствах, написанных через дефис, вместо этого используется верблюжья нотация. Например, чтобы получить атрибут цвета фона элемента div с идентификатором «header», нам нужно использовать следующий синтаксис:
1px
Solid #ccc";
«float» — зарезервированное слово JavaScript, мы не можем использовать object.style.float для получения атрибута «float». Вот как мы используем его в обоих браузерах:
Синтаксис IE:
document.getElementById("header").style.styleFloat = "left"
Синтаксис Firefox:
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
Синтаксис Firefox:
var myObject = document.getElementById("header");
вар myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
var myStyle = myComputedStyle.backgroundColor
3. Получить атрибут «класс» элемента;
Как и в случае с атрибутом «float», два браузера используют разные методы JavaScript для получения этого атрибута.
Синтаксис IE:
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("className");
Синтаксис Firefox:
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("class");
4. Получите атрибут for метки label.
Как и в третьем случае, существуют разные синтаксисы использования JavaScript для получения атрибута «for» метки.
Синтаксис IE:
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor");
Синтаксис Firefox:
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");
Тот же синтаксис используется для метода setAtrribute.
5. Получить позицию курсора
Получение позиции курсора элемента происходит редко, и если вам это нужно, синтаксис в IE и Firefox различен. Этот пример кода довольно прост и обычно используется как часть многих сложных обработчиков событий и используется только для описания различий. Следует отметить, что результаты в IE отличаются от результатов в Firefox, поэтому с этим методом возникают некоторые проблемы. Зачастую эту разницу можно компенсировать получением «позиции прокрутки» — но это тема другой статьи.
Синтаксис IE:
вар myCursorPosition = [0, 0];
myCursorPosition[0] = event.clientX;
myCursorPosition[1] = event.clientY
Синтаксис Firefox:
вар myCursorPosition = [0, 0];
myCursorPosition[0] = event.pageX;
myCursorPosition[1] = event.pageY;