我想知道是否有一种方法可以仅使用 html 在另一个 html 中包含一些 html 内容?
PHP 的替代品
<?php include("file.php"); ?>
这可能吗?
编辑:
这引起了一些混乱,我需要的是“几乎是一个 html 标记”,它具有在另一个中包含 html 文档的功能。
我想知道是否有一种方法可以仅使用 html 在另一个 html 中包含一些 html 内容?
PHP 的替代品
<?php include("file.php"); ?>
这可能吗?
编辑:
这引起了一些混乱,我需要的是“几乎是一个 html 标记”,它具有在另一个中包含 html 文档的功能。
你有没有尝试过:
<object type="text/html" data="file.html"></object>
它不能纯粹由 HTML 来完成。(但是有 iframe,但我认为在这种情况下不符合条件。)
可以使用 JavaScript 来完成。您通过 Ajax 获取另一个文件,并将其内容放在当前页面的 HTML 元素中。
我写的一个库的无耻插件解决了这个问题。
https://github.com/LexmarkWeb/csi.js
<div data-include="/path/to/include.html"></div>
上面将获取的内容/path/to/include.html
并div
用它替换。
HTML 没有原生包含其他内容的功能。但是,大多数 Web 服务器确实有服务器端包含语句:
Apache中的
SSI IIS中的 SSI
唯一的就是一个纯 html 的 iframe。但您也可以使用 javascript 通过 ajax 获取页面并将其包含到您的 dom 层次结构中
没有这样的事情。您必须使用服务器端脚本语言或 JavaScript 来执行此类操作。
是的,但您需要在配置或 .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" -->
如果您使用的是 Apache,您可以尝试Server Side Includes
.
这可能晚了几年,但我就是这样做的!
在第一行之后放这行!
<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 -->
希望这有帮助!
差不多10年过去了,可能还有人对此心存疑虑。因此,我将解释我们在 2020 年今天拥有的一个简单解决方案。
我总是使用 jquery .load() 函数并且从来没有遇到过问题。
Exemple: ( "#content" ).load( "includes/menu.html" );
Html 中缺少 Include\Import 真是令人沮丧!
一个不错的选择是“服务器端包含 (SSI)”,以防“PHP”不受支持!
几乎所有(如果不是全部)网络主机服务器都支持 SSI!
<!--#include virtual="layout.html" -->
包含上述行的文件必须以“.shtml”或“.shtm”扩展名结尾!
浏览器本身无法执行 Include\Import 这样简单的操作,这真的很烦人!
与 php 或 Node.js 一样,任何浏览器都应该支持在 HTML 加载过程开始之前使用 Javascript 本身对 html 进行预处理!