我需要条件样式,具体取决于浏览器是否为IE浏览器。
方法1
<!--[if IE]>
<style>
.myDiv{background-color: #0F0;}
</style>
<![endif]-->
<!--[if !IE]>
<style>
.myDiv{background-color: #000;}
</style>
<![endif]-->
方法2
<script type="text/javascript">
function myFunc()
{
if ($.browser.msie) // Internet Explorer
{
$(".myDiv").css("background-color", "#0F0");
}
else // Other browsers
{
$(".myDiv").css("background-color", "#000");
}
return false;
}
window.onload = myFunc;
</script>
<div class="myDiv" style="width: 200px;">Hello</div>
当我在本地或测试服务器中托管代码时,这两种方法都可以正常工作。但是当我在生产机器上运行它们时,它们无法正常工作。
当我打开浏览器控制台时(针对方法2),当我在本地或测试服务器上托管时,我可以看到类似的内容
<div class="myDiv" style="width: 200px;" jQuery15487254606012953487="4">
Hello
</div>
当托管在有问题的服务器中时,我在控制台中看到了这一点
<div class="myDiv" style="width: 200px;">
Hello
</div>
这种差异是否会暗示我失踪的任何事情?
我使用以下
答案 0 :(得分:0)
当您说window.onload = myFunc();
时,您立即呼叫myFunc
- 可能在任何要设置样式的元素之前。
将myFunc()
替换为myFunc
(无parens)以设置处理程序。或者,甚至更好,说$(myFunc)
并完全停止使用window.onload
。
除此之外,$.browser
has been removed from jQuery。如果您坚持关注正在使用的浏览器,请查看navigator.userAgent
。 (但坦率地说,没有充分的理由去关心,并且有一些非常好的理由不要关心。)