忽略脚本类型是一个好习惯吗? [复制]

Posted

技术标签:

【中文标题】忽略脚本类型是一个好习惯吗? [复制]【英文标题】:Is it a good practice to ignore script type? [duplicate] 【发布时间】:2012-07-28 14:26:22 【问题描述】:

可能重复:html5 <script> declarations

我听一些人说你不需要在&lt;script&gt; 标签中指定type="text/javascript",因为这是默认类型。

如果我将脚本标签打开为&lt;script&gt; 而不是更冗长的&lt;script type="text/javascript"&gt;,会有什么缺点吗?

【问题讨论】:

@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&lt;script&gt;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 用作类中的属性是一种好习惯吗? [复制]

在每个可能的地方都使用指针是一种好习惯吗? [复制]

大量使用静态成员变量是一种好习惯吗? [复制]

在 C 中释放 NULL 指针是一种好习惯吗? [复制]

在 free() 之后将指针设置为 NULL 总是一个好习惯吗? [复制]

元素的子元素的重复 ID。这是好习惯吗? [复制]