当我注意到一些特殊的行为时,我正在开发一个Web应用程序。我有一个通过JavaScript style
属性应用了样式的元素。之后,我尝试用removeAttribute("style")
删除应用于该元素的所有样式。这只适用于Gecko。 WebKit什么都不做。WebKit和Gecko之间的风格行为差异
我发现了一种解决方法(在删除属性之前使用setAttribute("style", "")
),但我不明白为什么在WebKit上需要setAttribute
而不是在Gecko上需要setAttribute
。为什么?
我有一个行为示例here。尝试对setAttribute
行进行注释,看看Gecko和WebKit之间的行为有何不同。
您正在编辑DOM属性,而不是HTML属性。尝试设置'.style.background'为空。而且,将属性设置为空字符串并不是一种可靠的删除方法。 – 2011-03-27 02:18:33
@Matt:我假定更新DOM属性也会更新HTML属性来反映这一点。其次,我将它设置为空,然后*还*删除它,而不是将其设置为空。 – icktoofay 2011-03-27 03:27:08
这不是我第一次见到'removeAttribute'有一个不同于'setAttribute'的空字符串行为;我正在考虑的情况是试图删除内联事件侦听器。 (在这种情况下'setAttribute'导致JavaScript严格警告,所以不理想。) – Neil 2011-03-27 20:59:02