Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';HTML中的空脚本标记是什么?_Javascript_Html - Fatal编程技术网

Javascript 什么';HTML中的空脚本标记是什么?

Javascript 什么';HTML中的空脚本标记是什么?,javascript,html,Javascript,Html,要在HTML页面中包含外部JavaScript文件,请使用以下命令: <script type="text/javascript" src="images/jquery-2.2.2.js"></script> 如果它是有效的(至少在HTML5中是有效的),那么如何确保每个支持HTML5(或XHTML5)的浏览器都能了解这种用法 编辑 我将把这个问题带到HTML工作组。不推荐使用上的src属性,因为它是整个混乱的根源,使用以下两个选项之一: 标记而不是空的标记: <

要在HTML页面中包含外部JavaScript文件,请使用以下命令:

<script type="text/javascript" src="images/jquery-2.2.2.js"></script>
如果它是有效的(至少在HTML5中是有效的),那么如何确保每个支持HTML5(或XHTML5)的浏览器都能了解这种用法

编辑 我将把这个问题带到HTML工作组。不推荐使用
上的
src
属性,因为它是整个混乱的根源,使用以下两个选项之一:

  • 标记而不是空的
    标记:

    <link type="text/javascript" href="images/jquery-2.2.2.js" />
    
  • JavaScript本身中的PHP风格
    include()
    (因此在任何时候都将一些内容强制放入标记中,并允许在一个
    script
    标记中包含多个脚本)

    include(“images/jquery-2.2.2.js”);
    

不能忽略脚本元素的结束标记。如果这样做,JavaScript运行时会将以下HTML视为JavaScript并出错

您可以自行终止元素标记(

)的唯一时间是,如果该元素没有结束标记(br、link、meta),或者结束标记定义为可选(li、p)

现在,您必须键入带有打开和关闭标记的元素的原因是,该元素可以包含JavaScript,,这使它成为内容元素。除非规范另有规定,否则所有内容元素必须始终显式关闭

实际上,HTML忽略了尾随的正斜杠“/” 解析器。包含它的唯一好处是如果标记是 由XML解析器解析

因此,对于HTML解析器,它会看到:

 <script type="text/javascript" src="images/jquery-2.2.2.js" />

因此:

 <script type="text/javascript" src="images/jquery-2.2.2.js">


然后,它会认为接下来的所有内容都必须是JavaScript。

根据规范,在HTML5中省略
的结束标记是不允许的(请参见标记省略部分):


有趣的是,在firefox 2.0左右的版本中,这实际上是可行的,但它被关闭了,以使XSS更难,并允许更多的清理regexp正常工作。我记得变更日志条目…粗略的tl;AFAIK博士:HTML5的一个最初目标是标准化能够跨浏览器最可靠地工作的内容。这在某些浏览器中从未实现过,因此出于可比性原因,它被排除在HTML5之外。这导致在HTML模式下实现它的浏览器决定删除它。@JeremyBanks:更简单的是:没有任何可以包含内容的标记可以通过
/>
自动关闭。我发现这变得非常愚蠢,速度非常快。
src
属性和script标记的内容在现实生活中基本上是互斥的,因此允许
自关闭并不是一个坏主意,因为它们几乎完全用于链接外部脚本。@MaxthonChan我不反对。但是,HTML中有很多“特性”没有多大意义。但是,这正是XML(和XHTML)应该解决的问题,直到世界决定它不希望XML成为未来。另一个解决方案可能会派上用场的地方是
标记。类似于
的内容可能会非常有用,可以从
标记中删除
src
属性。@maxthonch对此有更多的了解。HTML被设计为IBM在60年代设计的SGML(标准通用标记语言)的词汇和语法。当Tim Berners Lee创建HTML时,他使用SGML来指定HTML语言的“规则”。SGML要求元素有内容、没有内容或者可以选择自终止。因为
可以包含内容,所以它被声明为包含内容,因此需要一个结束标记。@MaxthonChan是另一个好建议,但请再次记住,HTML、CSS和JavaScript并不是同时发明和实现的,所以我们今天拥有的很多都是已经成为标准的补丁。Netscape发明了JavaScript,因此他们不得不发明一种将其注入代码的方法,因此他们提出了
无法做到这一点)。最终,它进入了标准。
<script type="text/javascript">include("images/jquery-2.2.2.js");</script>
 <script type="text/javascript" src="images/jquery-2.2.2.js" />
 <script type="text/javascript" src="images/jquery-2.2.2.js">