【问题标题】: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 也适用于旧版浏览器和文档类型。

标签: html


【解决方案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

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      相关资源
      最近更新 更多