在body的结束标记(</body>)之后放置脚本标记有多错误?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
在body的结束标记(</body>)之后放置脚本标记有多错误?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
当前回答
按照W3C推荐的过程,在“元素体”之后插入“元素脚本”是一个“解析错误”。在“树结构”中创建一个错误,并运行“再次标记”来处理该内容。这就像一个额外的步骤。只有这样,它才能运行“脚本执行”-见方案过程。
任何其他的都是“解析错误”。将“插入模式”切换为“主体内”并重新处理令牌。
从技术上讲,对于浏览器来说,如何标记和优化它是一个内部过程。
其他回答
按照W3C推荐的过程,在“元素体”之后插入“元素脚本”是一个“解析错误”。在“树结构”中创建一个错误,并运行“再次标记”来处理该内容。这就像一个额外的步骤。只有这样,它才能运行“脚本执行”-见方案过程。
任何其他的都是“解析错误”。将“插入模式”切换为“主体内”并重新处理令牌。
从技术上讲,对于浏览器来说,如何标记和优化它是一个内部过程。
是的。但是,如果您确实在外部添加了代码,这很可能不会是世界末日,因为大多数浏览器都会修复它,但这仍然是一个不好的做法。
谷歌实际上在“CSS优化”方面建议这样做。他们建议内联关键的叠上样式,并推迟其余(CSS文件)。
例子:
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<noscript><link rel="stylesheet" href="small.css"></noscript>
参见:优化CSS交付
Internet Explorer不再允许这样做了(我相信从版本10开始),并将忽略这类脚本。
Firefox和Chrome仍然容忍它们,但有可能有一天它们会将其作为非标准丢弃。
现代浏览器会像这样在主体中接受脚本标签:
<body>
<!-- main body content -->
<script src="scripts/main.js"></script>
</body>
基本上,这意味着一旦页面完成,脚本就会被加载,这在某些情况下可能是有用的(即DOM操作)。但是,我强烈建议您使用相同的脚本,并将其放在带有“defer”的head标签中,因为它将产生类似的效果。
<head>
<script src="scripts/main.js" defer></script>
</head>