【问题标题】:Why there is no 'include' directive in HTML? [closed]为什么 HTML 中没有“包含”指令? [关闭]
【发布时间】:2014-09-30 05:39:11
【问题描述】:

在许多编程语言中,有某种类型的“包含”命令/指令/语句可以帮助开发人员制作更“模块化”的源代码,因此无需将所有内容都包含在一个中单个文件。

为什么 HTML 中没有这样的功能?

【问题讨论】:

  • HTML 不是一种编程语言,而是一种标记语言。尽管 SGML 具有外部实体,但浏览器不支持它们。
  • 曾经一度是这样的:en.wikipedia.org/wiki/Server_Side_Includes
  • 我认为这个问题不会有基于事实的答案,除非你能从几十年前参与早期 HTML 规范过程的人那里找到参考资料。包含用于 JS 文件和 CSS 文件,但不用于 HTML 块。世界已经开始使用服务器端包含或模板来包含 HTML 服务器端的片段,这可能是它发生的更好地方(更少的网络请求)。此外,还有一些 iframe 可用于某些类型的用途。
  • 有诸如 HTML 导入之类的东西。 html5rocks.com/en/tutorials/webcomponents/imports
  • 这个问题既是基于观点的又是离题的(它是在寻找“理论”的原因,而不是解决实际问题的方法)。关于“如何在 HTML 文件中包含 HTML 文件”这个实际问题,SO 上有几个版本。

标签: html xhtml sgml


【解决方案1】:

HTML 导入确实存在,但目前仍在开发中,可能需要一段时间才能获得所有主流浏览器的支持。

就像包含 CSS 和网站图标一样,link 元素用于导入 HTML 片段,然后您可以使用 JavaScript 使用(即克隆):

<link rel="import" href="/path/to/imports/stuff.html">

It's been supported since Chrome 36 according to Can I Use

您可以在HTML Imports: #include for the web 阅读有关 HTML 导入的更多信息,也可以关注specification at the W3C

【讨论】:

    【解决方案2】:

    试试这个链接,可能对你有帮助,导入页面...

    http://www.html5rocks.com/en/tutorials/webcomponents/imports/

    HTML Imports 是 Web Components cast 的一部分,是一种将 HTML 文档包含在其他 HTML 文档中的方法。您也不限于标记。导入还可以包括 CSS、JavaScript 或 .html 文件可以包含的任何其他内容。换句话说,这使得导入成为加载相关 HTML/CSS/JS 的绝佳工具。

    通过声明:在您的页面上包含导入:

    <head>
      <link rel="import" href="/path/to/imports/stuff.html">
    </head>
    

    导入的 URL 称为导入位置。要从另一个域加载内容,导入位置需要启用 CORS:

    <!-- Resources on other origins must be CORS-enabled. -->
    <link rel="import" href="http://example.com/elements.html">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2016-04-16
      • 2014-07-16
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多