setAttribute не работает на атрибут 'стиля' на IE

Я портирую часть кода JS, написанного для Firefox в Internet Explorer. Я столкнулся с проблемой изменяющегося стиля использования элемента setAttribute метод, который работал над Firefox.

button.setAttribute('style', 'float: right;');

Я пытался установить члена стиля кнопки, и она не работала также. Это было решением в случае установки onclick обработчик событий.

button.style = 'float: right;';

Сначала я хочу знать решение для вышеупомянутой проблемы и
Второй там какие-либо ведомые списки для этих различий между браузерами?

22
задан Ali Nadalizadeh 22 January 2010 в 17:51
поделиться

2 ответа

Извините, Здесь немного поздний ответ - кажется, что это возможно для подмножества 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 , чтобы сделать это.

35
ответ дан 29 November 2019 в 04:04
поделиться

Никто еще не коснулся на него, но это то, что каждый разработчик PHP должен быть в состоянии говорить в длину: почему Register_Globals плохой?

-121--847613-

GetAttribute и SetAttribute разбиты в Internet Explorer.

Правильный синтаксис для того, что вы пытаетесь достичь, это:

button.style.cssFloat = 'right';

правильное решение проблемы более вероятно:

button.className = 'a class that matches a pre-written CSS rule-set';
6
ответ дан 29 November 2019 в 04:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: