在HTML中等效include()

时间:2010-10-13 21:48:48

标签: php html function include server-side-includes

我想知道是否有办法在仅使用html的情况下在其他html中包含一些html内容?

替换PHP的

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

这可能吗?

编辑:

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

11 个答案:

答案 0 :(得分:32)

你试过了吗?

<object type="text/html" data="file.html"></object>

答案 1 :(得分:20)

它不能完全由HTML完成。 (但是,有iframe,但我不认为在这种情况下有资格。)

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

答案 2 :(得分:11)

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

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

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

以上内容将采用/path/to/include.html的内容,并将div替换为{。}}。

答案 3 :(得分:7)

HTML没有本机包含其他内容的功能。但是,大多数Web服务器都有服务器端包含语句:
SSI in Apache
SSI in IIS

答案 4 :(得分:6)

唯一的是iframe是纯HTML。但你也可以使用javascript通过ajax获取页面并将其包含在你的dom hirarchy中

答案 5 :(得分:3)

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

答案 6 :(得分: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" -->

答案 7 :(得分:3)

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

答案 8 :(得分:3)

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

放在这一行后的第一行

<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 -->

希望这有帮助!

答案 9 :(得分:2)

将近10年后,有些人可能对此仍然有疑问。因此,我将解释一个我们今天在2020年拥有的简单解决方案。

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

Exemple: ( "#content" ).load( "includes/menu.html" );

答案 10 :(得分:0)

HTML中缺少Include \ Import确实令人沮丧!

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

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

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

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


浏览器本身无法执行像Include \ Import这样简单的操作,真是令人讨厌!

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