Разница в стиле поведения между WebKit и Gecko

Я работал над веб-приложением, когда заметил какое-то своеобразное поведение. У меня есть элемент со стилями, применяемыми с помощью свойства JavaScript style. Впоследствии я попытался удалить все стили, применяемые к элементу, с помощью removeAttribute("style"). Это работает только на Гекко. WebKit ничего не делает.

Я обнаружил обходное решение (используя setAttribute("style", "") перед удалением атрибута), но я не понимаю, почему setAttribute потребуется в WebKit, но не в Gecko. Почему?

У меня есть пример поведения здесь. Попробуйте прокомментировать строку setAttribute и посмотрите, как поведение отличается от Gecko и WebKit.

Ответ 1

Может ли это зависеть от того, как вы устанавливаете атрибут?

var test=document.getElementById("test");
//test.style.background="green";
test.setAttribute("style", "background: green");
test.removeAttribute("style");

Я прокомментирую вторую строку, потому что это другой способ изменения этого конкретного атрибута.

Теперь четвертая строка работает корректно в webkit (используя канал google chrome dev), и когда я прокомментирую это, //test.removeAttribute("style"), окно останется зеленым из третьей строки.