2011-12-05 50 views
0

我目前有一個HTML頁面,有一個灰色的身體背景。現在我想覆蓋這個,並使用JavaScript將其更改爲白色。我也想改變一些其他元素的填充和邊距。我嘗試使用innerHTML屬性來完成此操作。新<style>元素不工作在IE

事情就是一切工作,除了新引入的元素,它不適用於IE7或IE8。它在FireFox中工作。

 <script> 
     // if using jQuery 
     $(document).ready(function() { 
     document.body.innerHTML = ' 
    <style type="text/css"> 
     body { 
     background-color: #FFFFFF 
     !important; } 
     #todayBirthdays, #weekendBirthdays, #noBirthdays, #todayJubileums, #weekendJubileums { 
padding: 0 !important; 
     margin: 0 !important; 
     } 
    </style> 
      <div style="text-align: left; background-color: #FFFFFF">' + 
     document.getElementById('WebPartctl00_SPWebPartManager1_g_7118b319_c5b0_4214_a46d_27131866cde3').innerHTML + 
     '</div>';` 
       }); 
      </script> 

您能否請指教?

非常感謝!

+0

你有沒有考慮過改變你想要的背景等風格使用DOM,而不是試圖重建整個文檔HTML? –

+2

很可能是我見過的最好的代碼行 - >'document.getElementById('WebPartctl00_SPWebPartManager1_g_7118b319_c5b0_4214_a46d_27131866cde3')' – ManseUK

+0

必須愛Sharepoint :) –

回答

2

爲什麼不

$('body').css('background-color', '#fff'); 
$('#todayBirthdays, #weekendBirthdays, #noBirthdays, #todayJubileums, #weekendJubileums').css('padding', 0).css('margin', 0); 
+0

謝謝Marc!奇蹟般有效。 –

5

<style>標記只在<head>內有效,雖然有些瀏覽器可能會在其他地方尊重它。如果您想用腳本更改正文背景或其他屬性,請在jQuery中使用適當的.css()方法。

$(document).ready(function() { 
    $("body")css("backgroundColor", "#FFFFFF"); 
    $("#todayBirthdays,#weekendBirthdays,#noBirthdays,#todayJubileums,#weekendJubileums").css("margin", "0"); 
}); 
+1

Michael,感謝您的反饋。正確的解決方案是$('body')。css('cssText','background-color:#ffffff!important');順便說一下,因爲我需要強制背景顏色! –

1

見的jQuery CSS財產,也是addclass方法。這比你做的要容易得多!

$('body').css({ backgroundColor: 'value1' }); 
$('#todayBirthdays, #weekendBirthdays, #noBirthdays, #todayJubileums, #weekendJubileums').css({ padding: 'valuex', margin: 'valuey' }); 

雖然我認爲你應該使用addClass來代替。

.myClass { /* Some styling */ } 

$('#x, #y, #z').addClass(myClass); 
0
<html> 
    <head> 
    <style type="Text/css"> 
     body { background-color: #AAA; } 
    </stye> 
    </head> 
    <body> 
    <script type="text/javascript"> 
     var style = document.createElement('style'); 

     style.innerHTML = 'body { background-color: #F0F; }'; 
     // add any other styles inside this style element 

     document.getElementsByTagName('head')[0].appendChild(style); 
    </script> 
</body> 

如果你是卡在爲內嵌樣式添加附加到<body><head>

+0

_(如果您確實想知道如何添加新的樣式標籤)_ –

0

的演示這就是你問那麼使用以下命令:

$("<style type=\"text/css\"> body{background-color: #FFFFFF;} #todayBirthdays, #weekendBirthdays, #noBirthdays, #todayJubileums, #weekendJubileums { padding: 0 !important; margin: 0 !important;} </style>").appendTo("Head"); 

這會將您的樣式添加到文檔。但實際上,如果您要使用jQuery或JavaScript,更好的方法是隻更改背景的值。

document.getElementByTagName(body).attribute(background-color)="#FFFFFF"; 

OR

$("body").css("background-color", "#FFFFF"); 
相關問題