Разница в стиле поведения между 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")
, окно останется зеленым из третьей строки.