2011-03-31 91 views
0

我有一个网站,该网站加载的jQuery来自谷歌的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的。然而,我相信,防止在Safari,Chrome,Firefox等中加载JQuery。

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

+0

当您尝试使用不存在的'$'函数时,这只会给IE6中的JS错误。有更好的解决方案。 – SLaks 2011-03-31 16:10:34

+0

@SLaks他可能使用香草js也 – corroded 2011-03-31 16:13:10

回答

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]> 
+0

太棒了。低层次的评论效果很好。 – user663561 2011-07-11 19:54:00

1

去与有条件的意见,因为你已经知道了,只是没了--字符(使其他浏览器不把它当作注释)。

尝试在服务器上执行浏览器检测总是会要求麻烦。它不是100%可靠的,因为它可能被欺骗。有条件的评论的优点是它不能被欺骗 - 它会一直工作。个人而言,我只是忽略了IE6--它正在迅速从浏览器市场份额中消失(在大多数发达国家现在降至2%以下),并且在IE6中看起来丑陋的网站只能帮助加速它的消亡。但是编写一个能够优雅地降级并且可以应对IE6的网站做得很好。对此的赞扬,因为它比现在大多数人更努力。

+0

IE6低于2%?真? '[引用需要]' – SLaks 2011-03-31 16:15:52

+0

@SLaks - 英国:2.1%,http://gs.statcounter.com/#browser_version-GB-monthly-201003-201103 – Spudley 2011-03-31 16:17:31

+0

@ SLaks - US:1.8%,http:// gs .statcounter.com /#browser_version-US-monthly-201003-201103 – Spudley 2011-03-31 16:17:47