Html Internet Explorer的样式属性问题
在以下示例中,如何使用DOM api获取style属性的值:Html Internet Explorer的样式属性问题,html,internet-explorer,dom,Html,Internet Explorer,Dom,在以下示例中,如何使用DOM api获取style属性的值: <!DOCTYPE html> ... <div id="myid" style="foo"></div> ... ... ... document.getElementById('myid').getAttribute('style')在firefox和google chrome上返回“foo”,但在IE(9)上返回nullIE解析样式表并丢弃语法错误的部分。如果使用例如进行测试,则IE 9
<!DOCTYPE html>
...
<div id="myid" style="foo"></div>
...
...
...
document.getElementById('myid').getAttribute('style')
在firefox和google chrome上返回“foo”,但在IE(9)上返回nullIE解析样式表并丢弃语法错误的部分。如果使用例如
进行测试,则IE 9标准模式返回颜色:rgb(0,0,51);线高:1.3代码>。因此,它转换了颜色符号,并丢弃了格式错误的部分。在您的例子中,CSS代码在删除坏部分后变为空
旧版本的IE表现不同,IE9在怪癖模式下也不一样。通常,避免读取style
HTML属性,而是读取style
DOM属性。关于差异,请参见问题。您可能想看看jQuery<代码>$('div#myid').attr('style')代码>您是否在onready中运行此程序?i、 e.$(函数(){//code here..})代码>您的
标记结构不正确,它应该有一个完整的结束标记<代码>
。。。真的,修正了。。。但同样的结果是:(IE非常挑剔。你向html中添加一些东西并不意味着IE会将其添加到DOM中。如果有实际的css,它会起作用(或者只是让它成为style='foo:bar')。那么,为什么你的样式中只有'foo'呢?不要对自定义数据使用style属性。你可以使用outerHTML
属性(所有当前使用的IE版本都支持,但其他浏览器也有问题)然后解析标记以获得样式
属性值。相当笨拙。我不明白您为什么需要它。这样的样式
属性并不相关;重要的是组合样式。对于样式表中语法错误且被浏览器忽略的部分,您会怎么处理?outerHTML忽略了style属性你是对的,IE在这里也显示了解析的值,因此格式错误的foo
会被剥离。使用style
属性的值在语法上不是样式表的目的是什么?客户端模板。例如@Soubok,或者存储$foo
在变量中(毕竟,在客户端编程中,您也可以使用普通编程),或者将其放入数据-*
属性中,例如数据样式=“$foo”
,并仅当您可以将$foo
解析为真正的CSS代码时才生成样式
属性值(如果需要)。