从给定文件中嵌入 HTML 行

Embed Lines of HTML from a given file

抱歉,如果这个问题已经得到解答,我无法在任何地方找到这个问题的答案,因此非常感谢您的帮助。

我是 运行 一个简单的网站,有一堆非常相似的 HTML 文件,每个文件都有同一组可点击链接,这些链接会根据我对网站的操作而变化。

如果我需要 add/remove/change 一行 HTML,我需要为每个文件做同样的事情。

我想知道 HTML 中是否内置了一个包含类型,我可以在其中指定一个文件中的不同行,并将它们引用到每个 HTML 文件中,这样我只需要更改参考文件本身。

我知道你可以使用 JS 来做到这一点,但是有什么方法可以使用纯 HTML 吗?

谢谢。

使用纯 HTML?

是的,但是...它几乎可以肯定无法按照您期望或需要的方式工作。你不应该这样做,因为有很多更好的选择。

不该做什么

可以使用 <object> 标签(参见 here)——或者更确切地说,mis-used。问题是它将您的片段添加为嵌入式文档,这意味着它将有不同的布局、样式、脚本等上下文。

一个例子:我在文件 fragment.html:

中有一个 HTML 的片段
<div class="stylish">hello world<div>

我有另一个文件 welcome.html 包含完整的 HTML 页:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>HTML object tag</title>
    <style>
        .stylish { color: magenta; }
    </style>
  </head>
  <body>
    <h2 class="stylish">demo</h2>

    <div class="stylish">
      <!-- don't do this! -->
      <object data="fragment.html"></object>
    <div>

  </body>
</html>

具体来说,请注意 <object data="fragment.html"></object> 行。

你自己试试看,你会发现片段确实包含在内。 "demo" 标题是有样式的,但 "hello world" 不是,尽管我做了各种尝试。这可能违背了您的目的。

无论如何,这是一个 mis-use 标签,因为它旨在用于多媒体 objects。

此外,此标记只能用于 HTML 页面的 body - 不能用于 header(如果这是您的要求之一)。

较早的 HTML 标签,例如 <embed><iframe> 具有相似的功能。

所以,相反...

这会让您回到其他问题中讨论的选项,例如 this and this