2010-01-04 49 views
2

我需要dynamicaly變化CSS和我做的是通過看innerHTML的IE瀏覽器無法與附加內容,但閱讀

<div id="page_title">Homepage</div> -> this element 

我檢查它的innerHTML如果標題頁面上的話,如果頁面改變風格名稱是關於改變CSS這個和那個等等。

現在這個工作在ff但不是在IE7,這是什麼工作在這個?
我在谷歌上發現了一些鏈接,但沒有100%的工作和準確。我可以得到一些關於如何做到這一點的建議嗎?

+0

也許你應該使用類名來代替嗅探innerHTML?如果您可以在div內打印主頁文本,您應該能夠打印'

Homepage
'。 – 2010-01-04 12:18:35

+0

如果您將基於class或id而不是innerHTML來做同樣的事情會更好。 – 2010-01-04 12:47:12

回答

1
var page_title=document.getElementById("page_title"); 

if(/homepage/i.test(page_title.innerHTML)) 
    page_title.className="thisone"; 
else if(/about/i.test(page_title.innerHTML)) 
    page_title.className="thatone"; 

如果你的代碼看起來像這樣,如果它不起作用,問題可能出現在CSS本身。

+0

它工作在FF但它不工作在IE 7 – 2010-01-04 11:55:42

+0

你可以發佈你的CSS,你的javacsript代碼爲此目的或任何在線網址來測試?幾乎所有體面的PC瀏覽器上的.className應該都可以。我認爲問題出現在CSS中,或者在它到達該部分之前javascript失敗。 – YOU 2010-01-04 12:20:47

0

以下代碼適用於我的IE7,如果DIV的內容是主頁,則主體的背景變成藍色。另外綠色:

<html> 
<head> 
    <title></title> 
</head> 
<body> 
<div id="page_title">Homepage</div> 
<script> 
    if (document.getElementById('page_title').innerHTML === 'Homepage') { 
     document.body.style.background = '#DEF';//blue 
    } else { 
     document.body.style.background = '#DFE';//green 
    } 
</script> 
</body> 
</html> 

可能在這裏給出你的非工作代碼的一個例子。

0

也許你的div裏有空白或不可見的字符,導致比較失敗。

您可以嘗試使用this one等函數修剪innerHTML並比較結果嗎?

0

感謝您的回答我已經通過使用而不是div,h1元素來解決問題,並且我沒有使用innerHTML,而是使用title來獲得它的值。謝謝