Javascript`defer`似乎不起作用

时间:2014-12-24 15:19:46

标签: javascript jquery html firefox

我有这段代码:

<!DOCTYPE html>
<html lang="en">
<head>
<script defer src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<script defer>
// This function is supposed to run when the DOM is ready.
$(function() {

});
</script>
</head>

如果我删除了defer,它会有效,但是如果我将它们留在其中,或者仅仅是jquery,我会得到一个关于如何定义$的错误。也许我是一个白痴,但我读过defer的所有内容都说它应该加载所有脚本,然后在解析文档时运行它们。

这是最近的Firefox。

1 个答案:

答案 0 :(得分:5)

来自HTML5 spec

  

asyncdefer属性是指示的布尔属性   如何执行脚本。必须deferasync属性   如果src属性不存在,则不指定。

然后,只延迟jQuery,而不是内联脚本。因此,它会在定义之前尝试使用$,因此它会抛出。