【问题标题】:Why do jQuery samples often omit script type?为什么 jQuery 示例经常省略脚本类型?
【发布时间】:2013-02-18 16:35:03
【问题描述】:

例如here 代码如下:

<html lang="en">
   <head>
     <!-- whatever -->
     <script>
       $(function() {
         $( "#datepicker" ).datepicker();
       });
     </script>
   </head>
 <!-- whatever -->

请注意,&lt;script&gt; 应该包含 type 属性(可能设置为 "text/javascript"),但此处不存在。

这不是我见过的唯一例子。这样的代码让 Visual Studio 编辑器不高兴 - 它强调了 &lt;script&gt; 并说应该有一个 type 属性。这也让我很好奇。

为什么type 经常被省略?如果我添加 type="text/javascript" 会发生什么 - jQuery 会中断还是什么?

【问题讨论】:

  • 您尝试添加类型了吗?
  • 大多数浏览器默认使用 javascript,但无论如何您都应该指定类型。 JS 可能并不总是默认的。这是符合流行语的流行语,但明天其他语言可能会取代并成为事实上的标准。
  • @stewbydoo 问题不在于如何,而在于为什么
  • 如果您使用的是现代浏览器,它会知道默认值为 javascript,但我的同事有一个简单的问题,他忘记输入类型,这破坏了一切。所以只要包括它大声笑
  • 您错过了示例的第一行,&lt;!doctype html&gt; 非常重要。这将更改为 html5 而不是 html4,从而不需要 type 属性。

标签: javascript jquery


【解决方案1】:

这可能是因为HTML5 does not require a type attribute on &lt;script&gt; elements(默认为"text/javascript")。

【讨论】:

  • "text/javascript" 是许多年的默认类型。不适用于 HTML5。
  • @dfsq,嗯,type 属性 was required in HTML4,所以你必须明确指定它。
  • 没错。更好的说法是,即使没有指定,该浏览器也会正确使用 javascript 作为脚本语言。但是如果它不是 HTML5 doctype,则省略代码可能是无效的。
【解决方案2】:

在 HTML 5 中,现在默认设置脚本类型为 JavaScript,因此无需指定它。 不过似乎 HTML 4.01 确实需要它。

请看这里:http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1

还有:http://www.w3.org/TR/html5/scripting-1.html#script

【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:

      type 标签是可选的。 所有浏览器中的默认编程语言都是 JavaScript,因此它是默认的。在 XHTML 中,这个属性是必需的,也是不必要的。在 HTML 中,最好将其省略。

      浏览器会知道它是 Javascript。

      【讨论】:

        【解决方案5】:

        Visual Studio 可能不满意,因为它很懒,需要在 script 标记内解析您的代码,而智能感知必须也能正常工作,所以最好直接提供 type,而不是让 VS 猜测您使用的是什么语言,即text/vbscript

        您可以在 Visual Studio 下使用高级 vb 脚本编写一些 html 页面。 http://www.w3schools.com/vbscript/default.asp.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-23
          • 1970-01-01
          • 2020-04-08
          • 2011-01-17
          • 1970-01-01
          • 1970-01-01
          • 2010-09-15
          • 2011-08-10
          相关资源
          最近更新 更多