【问题标题】:Does HTML Have An "Include/Import" Function?HTML 有“包含/导入”功能吗?
【发布时间】:2012-10-30 17:24:54
【问题描述】:

我正在使用 HTML/CSS 开发一个静态网站。我的网站上有 7 个页面,每个页面都有完全相同的标题内容。 HTML 中是否有某种导入/包含功能?

这是我要寻找的那种东西的例子(注意我完全编造了语法):

[来源(header.html)]

<html>
    <head><title>Source Page</title></head>
    <body>
        <div id="myheader">Hello, World!</div>
    <body>
</html>   

[从源导入的页面]

<html>
    <head><title>My Title</title></head>
    <body>
        <div import="id:myheader;source:url('header.html');"/>
    <body>
</html>

谢谢!

一月

【问题讨论】:

  • 否;但您可以使用服务器端脚本解决方案,例如 php,确实如此。
  • 有什么理由必须只使用静态 HTML 吗?
  • 是的。我在没有服务器设置的环境中工作,所以我现在只能使用本地文件系统。如果有服务器端解决方案,那么我想我可以设置它并稍后进行测试。
  • 本地安装不了webserver/PHP?大多数开发人员都这样做。能把环境带给你,为什么还要等环境呢?

标签: html import include


【解决方案1】:

您可以使用 HTML 模板实现相同的功能.....如果您使用的是 Dreamweaver,则为您的页眉页脚和整个站点的通用布局创建 1 个 .dwt 文件............它将被包括在内自动到您的所有页面.....:)

不需要任何服务器端脚本,只需简单的 html ............

【讨论】:

    【解决方案2】:

    不是这样的,不。有几个选项,按可访问性和易用性的顺序排列:

    1. Server-side includes(假设您的静态文件服务器支持它们 - 大多数都支持)。
    2. iframes
    3. 单页应用程序样式(需要 JavaScript)。
    4. framesets(旧版,尽可能避免)。

    示例

    SSI

    <!--#include virtual="header.html" -->
    

    iframes

    <!-- Assuming HTML5 -->
    <iframe src="header.html" seamless></iframe>
    

    Javascript

    <script>
    // We have a magic ajax function
    ajax("header.html", function(data) {
        document.getElementById("header").innerHTML = data;
    });
    </script>
    

    framesets

    只是不要:-)

    【讨论】:

    • 您能提供一个使用#3 的例子吗?这是服务器端的javascript吗?
    • @JanTacci - 提供示例 - JavaScript 解决方案将是 客户端(因为您说您想要一个简单的静态服务器)。
    【解决方案3】:

    不,HTML 不提供此类功能。但是,您可以使用服务器端(这里有很多选项,取决于您的服务器设置)或客户端(JavaScript,使用 AJAX 加载额外内容)解决方案来实现结果。

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多