1

我觉得我现在正用头撞墙;我知道据报道,在 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 + Ror时无效f5。我在本地运行这个应用程序。不确定这是否重要,但我尝试将其设置为始终通过开发工具从服务器刷新,成功刷新一次,然后禁用此设置,它仍然没有完全运行此脚本 - 似乎如果我在其中发出警报在那里,或console.log,它工作正常(不添加类,但即使放在while循环中也会向控制台发出警报或写入。如果它从 server 或 using 刷新ctrl + f5,肯定应该替换缓存的副本,对吗?

提前致谢, 问候, 理查德

4

0 回答 0