【问题标题】:Can you 'compile' html files together to simulate a 'include' function?您可以一起“编译”html 文件来模拟“包含”功能吗?
【发布时间】:2017-07-14 12:24:04
【问题描述】:

我喜欢 SASS,因为您可以创建 mixins 并通过包含在导出/保存时编译的各种 SASS 文件(取决于您的应用程序)来重用您的代码。 PHP 可以做一些相同的事情,但我从未见过一个 HTML 页面被分解成各种 HTML 文件并在导出/保存时编译成一个整体。

我不会编写 PHP,我不希望这种开销只是为了让事情变得更容易,并且不得不调整一个文件(即“navigation.html”)而不是更改网站上每个页面中的代码。

因此,我要问以下两个之一:

  1. 一种编译器,例如 Codekit,可以将部分 HTML 文件合并在一起
  2. 一个 HTML/Javascript/jQuery/Ajax(

必须调整一个超过 50 页的内容可能会很痛苦,但在每个页面上使用相同的代码也可以提供一定的一致性并提供保证。这就是为什么我希望我的请求能够得到解决。

【问题讨论】:

  • 据我所知,它在 HTML 中是不可能的,除非您使用 js、angular 或 php 或任何其他编程语言。你可以在单独的文件中创建一个公共部分,然后包含在主文件中。就像你有所有页面的页眉,页脚,导航然后你可以为所有页​​面创建单独的文件,然后包含在主文件中。

标签: javascript jquery html compilation include


【解决方案1】:

您的第二个选项是我使用的,您创建通用“组件”,并根据您插入它的父组件的 ID 等内容,它会以不同的方式运行或从 JS 或 jQuery 加载不同的“函数库” " 例如,如果菜单组件的父 div 是 'mainMenu',它将调用显示主要选项的情况。当菜单组件父 ID 为“加载”时,它会显示加载按钮并在其上添加代码以加载文件...

第 1 页

 <div id='mainMenu'></div>

然后是第 2 页

 <div id='load'></div>

然后是 jQuery

$(document).ready(function(){
    component = "<ul id='menu'><li></li></ul>";
    $(body).find("div").each(function(){
        switch($(this).attr("id") {
            case "mainMenu":
                code to add functionality to component;
                break;
            case "load":
                code to add functionality to component;
                break;
            default:
                code to manage error;
        }
    });
}):

这只是我认为你可以做的一个例子。

【讨论】:

    【解决方案2】:

    你可以从w3.js使用w3-include-html

    例子:

    &lt;div w3-include-html="content.html"&gt;&lt;/div&gt;

    HTML Include

    【讨论】:

    • 你能找到一些关于浏览器支持的信息吗?我从来没有读过这样的东西。我认为 IE 9.0 是最低要求。
    • 我找不到任何有关支持的信息。如果有帮助,它是今年创建的。 w3schools.com/w3js/w3js_downloads.asp
    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    • 2021-12-04
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多