我觉得我现在正用头撞墙;我知道据报道,在 jQuery 1.8.0 中,该document.ready
函数在 IE 9 和 10 中触发得太早了。但是我在 jQuery 最新(1.9.1)下运行了以下代码片段:
<script type="text/javascript">
$(document).ready(function() {
window.ie = (function(){
var undef, v = 3, x = 9, div = document.createElement('div'), div2 = document.createElement("div"), all = div.getElementsByTagName('i'), bs = div2.getElementsByTagName("b");
while ( div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0] );
while ( div2.innerHTML = '<!--[if lte IE ' + x + ']><b></b><![endif]-->', bs[0] ) {
$("body").addClass("lteie" + x--);
}
if(v > 4) $("body").addClass("isie" + v);
return v > 4 ? v : undef;
}());
});
</script>
这在我从服务器刷新时有效,但在我使用ctrl + R
or时无效f5
。我在本地运行这个应用程序。不确定这是否重要,但我尝试将其设置为始终通过开发工具从服务器刷新,成功刷新一次,然后禁用此设置,它仍然没有完全运行此脚本 - 似乎如果我在其中发出警报在那里,或console.log,它工作正常(不添加类,但即使放在while循环中也会向控制台发出警报或写入)。如果它从 server 或 using 刷新ctrl + f5
,肯定应该替换缓存的副本,对吗?
提前致谢, 问候, 理查德