我需要dynamicaly变化CSS和我做的是通过看innerHTML的IE浏览器无法与附加内容,但阅读
<div id="page_title">Homepage</div> -> this element
我检查它的innerHTML如果标题页面上的话,如果页面改变风格名称是关于改变CSS这个和那个等等。
现在这个工作在ff但不是在IE7,这是什么工作在这个?
我在谷歌上发现了一些链接,但没有100%的工作和准确。我可以得到一些关于如何做到这一点的建议吗?
我需要dynamicaly变化CSS和我做的是通过看innerHTML的IE浏览器无法与附加内容,但阅读
<div id="page_title">Homepage</div> -> this element
我检查它的innerHTML如果标题页面上的话,如果页面改变风格名称是关于改变CSS这个和那个等等。
现在这个工作在ff但不是在IE7,这是什么工作在这个?
我在谷歌上发现了一些链接,但没有100%的工作和准确。我可以得到一些关于如何做到这一点的建议吗?
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本身。
它工作在FF但它不工作在IE 7 – 2010-01-04 11:55:42
你可以发布你的CSS,你的javacsript代码为此目的或任何在线网址来测试?几乎所有体面的PC浏览器上的.className应该都可以。我认为问题出现在CSS中,或者在它到达该部分之前javascript失败。 – YOU 2010-01-04 12:20:47
以下代码适用于我的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>
可能在这里给出你的非工作代码的一个例子。
也许你的div里有空白或不可见的字符,导致比较失败。
您可以尝试使用this one等函数修剪innerHTML并比较结果吗?
感谢您的回答我已经通过使用而不是div,h1元素来解决问题,并且我没有使用innerHTML,而是使用title来获得它的值。谢谢
也许你应该使用类名来代替嗅探innerHTML?如果您可以在div内打印主页文本,您应该能够打印'
如果您将基于class或id而不是innerHTML来做同样的事情会更好。 – 2010-01-04 12:47:12