忽略脚本类型是一个好习惯吗? [复制]
Posted
技术标签:
【中文标题】忽略脚本类型是一个好习惯吗? [复制]【英文标题】:Is it a good practice to ignore script type? [duplicate] 【发布时间】:2012-07-28 14:26:22 【问题描述】:可能重复:html5 <script> declarations
我听一些人说你不需要在<script>
标签中指定type="text/javascript"
,因为这是默认类型。
如果我将脚本标签打开为<script>
而不是更冗长的<script type="text/javascript">
,会有什么缺点吗?
【问题讨论】:
@kojiro 我的问题不是针对 html5 的。 不是真正的骗局。这是一个更普遍的问题。 @Christophe 我推断你听到的少数人在谈论 HTML5 定义了默认类型的事实。默认类型是 not 在 HTML4 中指定。 @kojiro 是的,这是一个很好的观点,但我听到(或读到)的 cmets 也适用于旧版浏览器和文档类型。 【参考方案1】:在 HTML4 中,type
属性是必需的:
http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1
在 HTML5 中不是。
http://dev.w3.org/html5/markup/script.html
如果您打算使用 HTML4,那么良好做法当然包括遵守其规范。如果您使用的是 HTML5,那么很明显没有 type
的 <script>
是 text/javascript
,因此您可以放心地省略它。
【讨论】:
感谢您的参考。但在实践中,您是否在 html4 中有省略类型会导致问题的示例? @Christophe 不,因为浏览器旨在处理不良 HTML。这并不意味着写出你可以逃脱的东西是一个好主意。你的问题特别是一个陷阱,因为我们已经可以假设(因为 HTML5)未来的浏览器实现将采用默认类型,但一般来说,编写现在有效的无效 HTML 是错误的,因为它可能不起作用在未来的浏览器中。 我同意这是一个陷阱,这正是我向社区寻求建议的原因! (在尝试保存几个字节之前) @Christophe 但有一个简单的方法:使用 HTML5,不要包含type
。
@kojiro 除非你必须支持旧版浏览器。【参考方案2】:
是的!你绝对可以省略类型。确保您的文档类型是 HTML5 if you care for validity.
<!doctype html>
它在你能想到的任何浏览器上都可以正常工作。
如果您不使用 HTML5,那么违反规范不会被视为“良好做法”:)
【讨论】:
这是否适用于市场上仍然存在的非 html5 浏览器? @Truth 那么非html5文档呢? @Christophe:它工作很好,但它不会那么有效,如果你那么在乎的话。 我相信问题是“这是一个好习惯”吗?因此,我绝对不同意您的“是”。这绝对是一种不好的 做法(在 HTML 【参考方案3】:即使在使用 HTML5 时脚本类型属性不是必需的,但无论如何都应该始终使用它。每次将脚本包含到 HTML 文档中时都使用它是一种很好的做法。添加它并没有什么坏处,但不添加它可能会造成伤害。如果未指定 type 属性,旧版浏览器可能无法识别脚本。
【讨论】:
【参考方案4】:您是否正在为 Intranet(可能是网吧)开发桌面网站,您可以这样写:
<script>
$(functions());
</script>
如果你在互联网上使用 HTML 或 XHTML,我建议你这样写你的脚本标签:
<script type="text/javascript">
// <![CDATA[
// functions
$(functions());
// ]]>
并为内联 CSS 完成这项工作:
<style type="text/css">
/* <![CDATA[ */
/* tags */
html, body
/* ]]> */
</style>
这样,你输入的任何类型的字符都应该是有效字符
编辑 http://en.wikipedia.org/wiki/CDATA#Uses_of_CDATA_sections
【讨论】:
以上是关于忽略脚本类型是一个好习惯吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
将 Optional 用作类中的属性是一种好习惯吗? [复制]