检查是否已加载html 5 shim。

5
我们通常会检查是否从CDN加载了jQuery,如果没有,则回退到本地版本。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>

我正在使用Twitter Bootstrap,它会从googlecode复制品中加载HTML 5 shim。

<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>

如果无法从googlecode加载该文件,有没有办法回退到本地版本?

或者我做错了什么?我不应该检查这个吗?

4个回答

11
<script>window.html5 || document.write('<script src="js/libs/your-local-version.js"><\/script>')</script>

我只会使用本地版本,但您的回复绝对是问题的答案。它起作用了! - Jashwant
2
请不要使用 document.write... 它会阻塞预解析器,导致插入的脚本无法加载,而您必须等待代码执行和由它插入的 JS 加载后,才能呈现其下方的其他 DOM 元素。参见 http://www.stevesouders.com/blog/2012/04/10/dont-docwrite-scripts/。 - Andy Davies

4

我不建议使用jQuery(这是一个漫长的讨论,我不想打开),但这取决于你。

我认为从googlecode加载html5.js会给你带来更多问题,你应该将其托管在本地。为什么?因为你直接引用了SVN树中的代码。这些代码可能会发生变化,这将使你的工作处于未经测试的状态。你可以从Googlecode引用特定的修订版本...或者真的,只需自己托管。


我现在理解了你的所有顾虑。+1 - Jashwant

4

真是一条不错的信息。点赞。我必须标记弗拉基米尔的答案,因为那正确回答了所问的问题。但是,是的,我肯定不会使用谷歌的版本。 - Jashwant
麻烦的是,弗拉基米尔的代码从性能角度来看存在不良实践 :-( - Andy Davies
是的,我不打算使用弗拉基米尔的代码。我同意你的建议。现在,我甚至不打算使用cdn jQuery。但他的回复是对我的问题的答案。 - Jashwant

1

在使用html5shim时,我建议首先将其本地加载。他们最近更改了网站上的措辞,让你下载文件而不是从GitHub热链接它,这可能会托管未经测试的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接