HTML 中的空脚本标签是怎么回事? [复制]

2023-12-07

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

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

该标签的主体是空的,但我必须输入字符串script两次。为什么 HTML 中没有 XML 风格的隐式结束标记,如下所示:

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

如果它是有效的(至少在 HTML5 中),那么如何确保每个支持 HTML5(或 XHTML5)的浏览器都可以接受这种用法?

EDIT

我将把这个问题提交给 HTML WG。弃用src属性上<script>因为它是整个混乱的根源,有两个选项之一:

  • <link>标签而不是空的<script> tag:

    <link type="text/javascript" href="images/jquery-2.2.2.js" />
    

    或者可选地带有rel属性:

    <link rel="script" type="text/javascript" href="images/jquery-2.2.2.js" />
    
  • PHP风格include()在 JavaScript 本身中:(因此强制some始终将内容添加到标签中,并允许将多个脚本包含在一个脚本中script tag)

    <script type="text/javascript">include("images/jquery-2.2.2.js");</script>
    

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

您唯一可以自行终止元素标签的时间(<br />) 是如果该元素没有结束标记(br、link、meta)或者结束标记被定义为可选(li、p)。

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

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

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

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

As this:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML 中的空脚本标签是怎么回事? [复制] 的相关文章

  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何在使用页面锚点导航时设置“激活”类以在 Angular 2 中引导导航栏?

    我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站 我创建了一个始终位于页面顶部的导航栏组件 并且我正在使用页面锚点导航 id 请注意 我还没有创建路由模块 到目前为止还没有必要这样做 导航栏代码如下
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • 在 ruby​​ 中从自身获取实例变量名称

    我有一个实例变量 foo我想写一些代码来获取字符串 foo 有什么提示吗 如果您拥有的只是对该对象的引用 那么您就无法真正干净利落地完成它 def foo bar something end def bar value value no c
  • DATA 和 IMAGE 填充在两行中。我想将它们绑定在一行中

    我要第二次问这个问题 我会把它说清楚 这样你就可以帮助我 好吧 让我们开始吧 我有一个注册流程 我把这个过程分成了两页 第一页仅用于 个人信息 然后 当我单击下一步按钮时 将出现下一页 postbackURL 此页面用于 上传照片 页面 他
  • Scrapy CLOSESPIDER_PAGECOUNT 设置无法正常工作

    我使用 scrapy 1 0 3 无法发现 CLOSESPIDER 扩展是如何工作的 对于命令 scrapy 抓取domain links set CLOSESPIDER PAGECOUNT 1 正确的是一个请求 但对于两页计数 scrap
  • javaFx 中更新 java-124 版本后如何解析 tableview 中的嵌套列?

    Exception in thread JavaFX Application Thread java lang NullPointerException at com sun javafx scene control skin Nested
  • 父类是否应该引用子类?

    早上好 我在工作中继承了一些遗留代码 它使用了一种相当不寻常的设计模式 我在论坛上找到的类似模式的唯一参考是here 情况是原始设计者有一个通用父类 不是抽象 它有一个直接引用子类的静态工厂方法 以下是这种编码风格的示例 可以在遗留代码的多
  • Google 的抓取工具可以解释 Javascript 吗?如果我通过 AJAX 加载页面怎么办? [关闭]

    Closed 这个问题是无关 目前不接受答案 当用户进入我的页面时 我必须进行另一个 AJAX 调用 以加载 div 内的数据 这就是我的应用程序的工作原理 问题是 当我查看这段代码的源代码时 它不包含该 AJAX 的源代码 当然 当我执行
  • InvalidCastException:无法将类型“System.DBNull”的对象转换为类型“System.Nullable`1[System.Int32]”[重复]

    这个问题在这里已经有答案了 我正在尝试从数据库执行存储过程 但是 我遇到了一个例外 InvalidCastException 无法将 System DBNull 类型的对象转换为 输入 System Nullable 1 System In
  • 为什么不调用复制构造函数?

    class MyClass public MyClass MyClass x 0 y 0 default constructor MyClass int X int Y x X y Y user defined constructor My
  • lex 和 yacc(符号表生成)

    我对编译器设计中的 lex 和 yacc 很陌生 我想知道符号表是在哪个阶段 词汇 句法或任何其他阶段 以及如何生成的 我可以简要描述一下 y output 文件 该文件是通过向 yacc 提供 v 选项生成的 我试图研究它 但没有得到太多
  • 编写 thunk 来验证 SysV ABI 合规性

    The SysV ABI定义 Linux 的 C 级和汇编调用约定 我想编写一个通用的 thunk 来验证函数是否满足被调用者保留寄存器的 ABI 限制 并且 可能 尝试返回一个值 So given a target function li
  • 我正在尝试创建一个存储过程来创建登录名和数据库用户?

    我正在使用 SQL Server 开发 C 应用程序 并且想调用存储过程来创建登录名和用户 我正在寻找最简单的方法来做到这一点 只是默认的东西 但有用户名和密码 登录旁边的创建有红色下划线 但我觉得我的登录没问题 如果我遗漏了什么 请告诉我
  • 如何随机选择对象密钥?

    我有以下代码 namedarray India New Delhi namedarray Australia Canberra namedarray Indonasia Jakarta namedarray Iran Tehrani nam
  • python Fabric 多个命令

    我试图了解 Fabric 如何在一台机器上使用多个命令 我需要在每台主机 数千台主机 上运行多个命令 并且想知道什么是最好的 使用多次运行 res 1 run command 1 res 2 run command 2 res n run
  • 使用 Google 服务帐户模拟用户列表

    根据文档 Google Apps 域管理员可以向服务帐户授予域范围内的权限 以代表域中的用户访问用户数据 我的轻描淡写是 这赋予了服务帐户访问数据的权限全部用户域内 有没有办法限制哪些用户服务帐户有权访问 例如 使用 Google Cale
  • 即使在同步期间也会执行自定义 gradle 任务

    所以我确信这是一个非常愚蠢的错误 但我需要你的帮助 因为我不是 gradle 专家 TASK 从文件中读取 versionCode 添加 1 并将其保存回来 task executeOrderSixtySix def versionProp
  • 第二次调用回调时 JVM 崩溃

    我使用 JNA 调用本机库 我的回调接口 public interface PPAEvent extends Callback void callback int eventCode int opCode String Data 我有一个回
  • firebase.auth.GoogleAuthProvider 不是构造函数

    我正在尝试在 Vue 框架中使用 firebase 来使用 google 标志 我不知道这是什么错误 任何人都可以帮助我解决这个问题 vue runtime esm js 2b0e 1888 TypeError firebase js WE
  • swig 无法找到 openssl conf

    尝试安装 m2crypto 并出现这些错误 有人可以帮忙吗 SWIG evp i 12 Error Unable to find openssl opensslconf h SWIG ec i 7 Error Unable to find
  • 将不同的列传递给函数内的 aes

    我正在尝试编写一个函数 该函数使用不同的 aes 参数调用 ggplot hmean lt function data column Label label ggplot data aes column geom histogram fac
  • HTML 中的空脚本标签是怎么回事? [复制]

    这个问题在这里已经有答案了 要在 HTML 页面中包含外部 JavaScript 文件 您可以使用以下命令 该标签的主体是空的 但我必须输入字符串script两次 为什么 HTML 中没有 XML 风格的隐式结束标记 如下所示 如果它是有效