2012-10-21 66 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>