27

我想知道是否有一种方法可以仅使用 html 在另一个 html 中包含一些 html 内容?

PHP 的替代品

<?php include("file.php"); ?>

这可能吗?

编辑:

这引起了一些混乱,我需要的是“几乎是一个 html 标记”,它具有在另一个中包含 html 文档的功能。

4

11 回答 11

38

你有没有尝试过:

<object type="text/html" data="file.html"></object>
于 2013-11-10T17:35:38.073 回答
21

它不能纯粹由 HTML 来完成。(但是有 iframe,但我认为在这种情况下不符合条件。)

可以使用 JavaScript 来完成。您通过 Ajax 获取另一个文件,并将其内容放在当前页面的 HTML 元素中。

于 2010-10-13T21:52:18.347 回答
13

我写的一个库的无耻插件解决了这个问题。

https://github.com/LexmarkWeb/csi.js

<div data-include="/path/to/include.html"></div>

上面将获取的内容/path/to/include.htmldiv用它替换。

于 2014-02-19T01:27:23.073 回答
7

HTML 没有原生包含其他内容的功能。但是,大多数 Web 服务器确实有服务器端包含语句:
Apache中的
SSI IIS中的 SSI

于 2010-10-13T21:54:16.300 回答
6

唯一的就是一个纯 html 的 iframe。但您也可以使用 javascript 通过 ajax 获取页面并将其包含到您的 dom 层次结构中

于 2010-10-13T21:51:53.493 回答
3

没有这样的事情。您必须使用服务器端脚本语言或 JavaScript 来执行此类操作。

于 2010-10-13T21:49:46.337 回答
3

是的,但您需要在配置或 .htaccess 中启用它:

Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml

当然,你需要重命名任何文件,包括.shtml...或者你可以直接使用:

Options +Includes
AddType text/html .html
AddHandler server-parsed .html

语法本身类似于注释:

<!--#include virtual="/footer.html" -->
于 2010-10-13T21:51:15.103 回答
3

如果您使用的是 Apache,您可以尝试Server Side Includes.

于 2010-10-13T21:52:24.180 回答
2

这可能晚了几年,但我就是这样做的!

在第一行之后放这行!

<SCRIPT LANGUAGE="JavaScript" src="http://yourdomain.com/header.js">

然后创建一个名为“header.js”的文件并输入您要包含的文件的内容!像这样……

<!-- Begin
document.write('<center>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<a href="http://alinktosomewhere.co.za">a link 1</a>');
document.write('<hr>');
document.write('</center>');
// End -->

希望这有帮助!

于 2013-06-30T16:02:51.447 回答
2

差不多10年过去了,可能还有人对此心存疑虑。因此,我将解释我们在 2020 年今天拥有的一个简单解决方案。

我总是使用 jquery .load() 函数并且从来没有遇到过问题。

Exemple: ( "#content" ).load( "includes/menu.html" );
于 2020-01-26T00:49:24.470 回答
0

Html 中缺少 Include\Import 真是令人沮丧!

一个不错的选择是“服务器端包含 (SSI)”,以防“PHP”不受支持!

几乎所有(如果不是全部)网络主机服务器都支持 SSI!

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

包含上述行的文件必须以“.shtml”或“.shtm”扩展名结尾!


浏览器本身无法执行 Include\Import 这样简单的操作,这真的很烦人!

与 php 或 Node.js 一样,任何浏览器都应该支持在 HTML 加载过程开始之前使用 Javascript 本身对 html 进行预处理!

于 2019-06-09T02:47:59.600 回答