2012-10-21 33 views
1

我在整个HTML文档中动态背景更改时遇到了问题。这是一段代码:如何在Javascript中更改HTML背景颜色 - IE9问题

function changeHTMLBackground() { 

    var html = document.getElementsByTagName('html')[0]; 
    html.style.background = "#ff00ff";  
} 

问题只出现在IE9中。在Chrome,FF中,Opera运行良好。我知道有一种解决方案可以改变“body”而不是“html”,但它不是我的解决方案,我需要为HTML标签更改样式。

+0

“......问题出现......”究竟是什么问题?我猜没什么反应 – Alexander

回答

0

使用backgroundColor属性,并将其应用到文档正文:

function changeHTMLBackground() { 
    document.body.style.backgroundColor = "#ff00ff"; 
} 

Fiddle - 适用于所有的浏览器IE9,包括

0

像这样:

<script type="text/javascript"> 
    $('document').ready(function(){ 
    $("#textfield").focus(function() { 
     $('.class').css(' background-color','#ff00ff'); 
    }); 
    }); 
</script> 
1

我不知道问题是什么,但这里有几个可能的解决方案。 1)也许选择器不工作。 尝试使用

document.html.style.backgroundColor = "#977689"; 

2)也许IE9与HTML BG颜色的问题呢。是CSS代码工作?

3)尝试在html标签中添加一个类和id,然后选择该元素。

+1

你知道'document.html'甚至不存在吗? –

+0

这是另一个问题 - 我在HTML中使用渐变标签,简短版本: 背景:线性渐变(到底部,#85b2d3 0%,#a7c7dc 32%,#a7c7dc 99%); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr ='#85b2d3',endColorstr ='#a7c7dc',GradientType = 0); 我在CSS中为HTML标记设置纯色,然后使用Javascript代码。 当我有“过滤器:...”Javascript失败。 选择器正常工作。 CSS代码正在工作。 任何sugestions? –

+0

那么,IE显然仍然支持这些过滤器属性。所以我猜测即使你更新背景颜色,filter属性也会推翻它。有可能是一些微软特定的Javascript代码来禁用过滤器。 但最简单的方法是定义类名并用Javascript切换它们。您可以为每个课程包含正确的背景。 –

0

很确定IE不支持将CSS应用到html标签本身,我也不确定这是标准所期望的。作为一个微不足道的测试,请尝试:

<!doctype html><html style="background: green"><body>Testing</body></html>