HTML5shiv仅在HEAD部分有效?

Reg*_*dit 3 html javascript html5

为了尽可能快地保存我的网站,我更喜欢在文档末尾加载.js脚本,就在关闭正文标记之前,为HEAD部分保留css.但是,我发现下面的html shiv代码显然只在HEAD部分实例化时才有效.

<!--[if lt IE 9]>
    <script type="text/javascript" 
        src="http://html5shiv.googlecode.com/svn/trunk/html5.js">
    </script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

有人知道解决方法吗?

Lio*_*ard 19

Google代码不是 CDN.不要链接主干中的文件.

查看响应标头:

Google代码不是CDN

缓存在3分钟后过期......这与我们想要的CDN完全相反.

请停止这样做.

注意

正如JoãoCunha评论的那样,你可以在cdnjs.com上找到真正的CDN链接:html5shiv.(在那里也可以找到respond.js)

样品:

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)


Bol*_*ock 14

HTML5 shiv的工作方式要求您将其放在<head>元素中.事实上,它在项目页面中这样说:

要使用这个脚本,它必须包含在<body>元素之前(即在它中<head>),但如果它出现在CSS之前或之后无关紧要 - 但为了提高性能,首先包含CSS会更有意义脚本.

这样IE就可以在开始构建文档主体之前识别HTML5元素.

没有解决方法.

这里的教训不是要将所有脚本放在页面末尾.CDN在提供服务方面非常快,所以你不需要移动这个特定的脚本.1


1 但正如其他人所提到的,由于Google Code实际上并不是CDN,因此您应该选择另一个来源.