有条件地加载jQuery

时间:2011-03-31 16:07:04

标签: jquery internet-explorer-6

我有一个网站正在从谷歌的CDN服务器加载jQuery:

<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>

对于禁用了javascript的浏览器,该网站仍能正常运行。 (优雅的退化)。

对于使用IE6的用户,javascript函数,但它看起来不漂亮。我要做的是防止在IE6上加载jquery。

我认为以下内容可行:

<!--[if gt IE 6]>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<![endif]-->

条件标签 - 如果浏览器大于IE6,则加载jQuery。但是,我相信这会阻止JQuery在Safari,Chrome,Firefox等中加载。

另一个解决方案是在PHP中检测浏览器,然后为除IE6之外的浏览器加载jQuery。这是最好的选择吗?

2 个答案:

答案 0 :(得分:6)

您需要使用downlevel-revealed comments

<![if gt IE 6]>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<![endif]>

答案 1 :(得分:1)

使用条件注释,只有没有--个字符才能使用条件注释(以便其他浏览器不会将其视为注释)。

尝试在服务器上进行浏览器检测总是会遇到麻烦。它不是100%可靠,因为它可以被欺骗。

表示条件评论的优点在于它不会被欺骗 - 它总会有效。

就我个人而言,我只是忽略了IE6--它正在迅速从浏览器市场份额中消失(现在大多数发达国家都低于2%),并且在IE6中看起来丑陋的网站只会有助于加速它的消亡。但是,写一个优雅降级并可以应对IE6的网站做得很好。对此表示赞赏,因为这比现在大多数人都要努力。