将<script>标签放在</ body>标签之后是错误的吗?

将脚本标签置于主体的结束标签( </body> )之后有多大错误? ?

 <html> .... <body> .... </body> <script type="text/javascript" src="theJs.js"></script> </html> 

它不会在<body><head>标签之外验证 。 它也不会有太大的区别 – 除非你正在做DOM操作,在body元素被完全加载之前破坏IE – 把它放在关闭之前</body>

 <html> .... <body> .... <script type="text/javascript" src="theJs.js"></script> </body> </html> 

是。 正文的结束标签后,只允许html元素的注释和结束标签。

浏览器可能会执行错误恢复,但不应该依赖于此。

正如Andy所说,这个文件将是无效的,但是脚本仍然会被解释。 查看WebKit的片段 ,例如:

 void HTMLParser::processCloseTag(Token* t) { // Support for really broken html. // we never close the body tag, since some stupid web pages close it before // the actual end of the doc. // let's rely on the end() call to close things. if (t->tagName == htmlTag || t->tagName == bodyTag || t->tagName == commentAtom) return; ... 

IE不允许这样做(自从版本10,我相信),并会忽略这样的脚本。 FF和Chrome仍然容忍他们,但有机会有一天他们会放弃这个非标准的。

是。 但是如果你把代码添加到外部,那么很可能不会是世界末日,因为大多数浏览器都会修复它,但是这仍然是一个不好的习惯。

谷歌实际上推荐这个“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> 

请参阅: https : //developers.google.com/speed/docs/insights/OptimizeCSSDelivery