为<style>设置innerHTML值在IE7中不起作用

时间:2015-12-11 06:33:14

标签: css internet-explorer text internet-explorer-7 innerhtml

我正在寻找一种方法,使用Javascript动态地将样式附加到我的样式表。

&#xA;&#xA;

在今天的浏览器中,我可以使用它作为例子:

&#XA;&#XA;
 <代码>&LT;风格&GT;&#XA; #ID {背景色:#F00;颜色:#000;}&#XA;&LT; /风格&GT;&#XA ;&lt; div ID =“id”&gt; Test1&lt; / div&gt;&#xA;&lt; div ID =“id2”&gt;测试&lt; / div&gt;&#xA;&lt; script&gt;&#xA; document.getElementById ( 'ID')的innerHTML + = “#ID2 {颜色:#00F}”;。&#XA;&LT; /脚本&GT;&#XA;  
&#XA;&#XA;

由于javascript,上面会将Test的颜色从黑色更改为蓝色,但此代码不适用于Internet Explorer 7等旧版浏览器。

&#xA;&#xA;

Internet资源管理器7,我将问题缩小到这样一个事实,即当它需要设置样式元素的innerHTML值时,它会在左下角产生一个javascript警告符号。

&#xA;&#xA; < p>我尝试更换:

&#xA;&#xA;
  document.getElementById('ID')。innerHTML + =“#id2 {color:#00F}”;&#xA;  
&#XA;&#XA;

使用:

&#XA;&#XA;
 <代码>的document.getElementById( 'ID')的appendChild(document.createTextNode( “#ID2 {颜色:#00F}”))。 ;&#xA;  
&#xA;&#xA;

我仍然不成功。

&#xA;&#xA;

我需要javascript for这是因为我想一次为多个元素设置背景图像,并且通过在CSS代码中进行夯实,我只能调用一次图像。如果我为每个元素使用本机javascript属性,那么我会经历许多元素以及多次请求加载相同元素,如果IE对缓存不好,那么负担将放在服务器上。 / p>&#xA;&#xA;

在Javascript中我可以做什么来将CSS数据附加到与IE 7一起使用的样式元素?我正在寻找简单的东西。

&#xA;

1 个答案:

答案 0 :(得分:0)

好吧,我回到过去的日子,并设法在IE 7中解决这个问题:

document.write('<style>'+d+'</style>');

变量d是要插入的实际规则。

我理解这是一个较慢的方法,因为它会创建大量的<style>标记,这是不好的HTML练习,但这个想法适用于IE7。