Я портирую часть кода JS, написанного для Firefox в Internet Explorer. Я столкнулся с проблемой изменяющегося стиля использования элемента setAttribute
метод, который работал над Firefox.
button.setAttribute('style', 'float: right;');
Я пытался установить члена стиля кнопки, и она не работала также. Это было решением в случае установки onclick
обработчик событий.
button.style = 'float: right;';
Сначала я хочу знать решение для вышеупомянутой проблемы и
Второй там какие-либо ведомые списки для этих различий между браузерами?
Извините, Здесь немного поздний ответ - кажется, что это возможно для подмножества XPath - в целом очень сложно из-за того, что XPath может соответствовать как переадресации, так и назад из «тока» точки. Я в курсе двух проектов, которые решают его в некоторой степени с использованием штатных машин: http://spex.sourceforge.net & http://www.cs.umd.edu/projects/ XSQ . Я не посмотрел на них подробно, но кажется, что они используют аналогичный подход.
-121--1001488-Поскольку сам стиль является объектом. То, что вы хотите:
button.style.setAttribute('cssFloat','right');
, но IE не поддерживает SetAttribute для объектов стиля. Итак, используйте полностью кросс-браузер, поддерживаемый:
button.style.cssFloat = 'right';
как для справки, я всегда хожу на www.quirksmode.org. В частности: http://www.quirksmode.org/compatibility.html . Нажмите на все товары, связанные с домом.
И, наконец, чтобы установить несколько атрибутов, которые я обычно использую что-то вроде:
function setStyle(el,spec) {
for (var n in spec) {
el.style[n] = spec[n];
}
}
Использование:
setStyle(button,{
cssFloat : 'right',
border : '2px solid black'
});
Примечание: Object.Attribute = «Значение»
Хотя работает во всех браузерах не всегда работает для -HTML DOM объекты. Например, если ваш документ содержит встроенную графику SVG, которая вам нужна для манипулирования JavaScript, вам нужно использовать SetAttribute
, чтобы сделать это.
Никто еще не коснулся на него, но это то, что каждый разработчик PHP должен быть в состоянии говорить в длину: почему Register_Globals
плохой?
GetAttribute
и SetAttribute
разбиты в Internet Explorer.
Правильный синтаксис для того, что вы пытаетесь достичь, это:
button.style.cssFloat = 'right';
правильное решение проблемы более вероятно:
button.className = 'a class that matches a pre-written CSS rule-set';