使用innerHTML创建具有内联样式的整个DOM对象,这样安全吗?

时间:2010-12-23 06:23:15

标签: javascript html css dom

我有两个选择:

var div = document.createElement('div');
div.style.cssText = 'background: none repeat scroll 0 0 #000000; ' +
    'opacity: 0.7; display: block; top: 0; bottom: 0; left: 0; ' +
    'right: 0; position: fixed; zIndex: ' + zIndexHighest() + ';';
document.body.appendChild(div);

或者

var span = document.createElement('span');
span.innerHTML = '<div style="background: none repeat scroll 0px 0px #000000; ' +
    'opacity: 0.7; display: block; top: 0px; bottom: 0px; left: 0px; ' +
    'right: 0px; position: fixed; z-index: ' + zIndexHighest() + ';"></div>';
document.body.appendChild(span);

显然第二种方式更快但我记得在某处读取innerHTML可能会忽略内联css样式。有谁知道这是真的吗?

我想要以第二种方式执行此操作的原因是因为我想在dom中添加几个div(我想创建一个小的自定义模式对话框)

1 个答案:

答案 0 :(得分:0)

使用innerHTML是安全的,但为什么不使用CSS类而不是内联样式?它将使您的代码更简单,更易于阅读,并使用更少的带宽和缩小文件大小。我唯一使用内联样式的方法是声明对象的宽度或高度,也许还有一件事。