首页 > 解决方案 > 从给定文件嵌入 HTML 行

问题描述

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

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

如果我需要添加/删除/更改一行 HTML,我需要对每个文件进行类似的操作。

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

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

谢谢。

标签: htmlwebserverinclude

解决方案


使用纯 HTML?

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

不该做什么

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

一个例子:我在一个文件中有一个 HTML 片段fragment.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>行。

自己试试这个,你会发现确实包含了该片段。“演示”标题是样式化的,但“你好世界”不是,尽管我做了各种尝试。这可能会破坏您的目的。

无论如何,这是对标签的误用,因为它旨在与多媒体对象一起使用。

此外,此标记只能在 HTML 页面的正文中使用 - 而不是在标题中(如果这是您的要求之一)。

较旧的 HTML 标记,例如<embed><iframe>具有类似的功能。

所以与其...

这使您回到其他问题中讨论的选项,例如thisthis


推荐阅读