Php 与HTML中的include()等效

Php 与HTML中的include()等效,php,html,function,include,server-side-includes,Php,Html,Function,Include,Server Side Includes,我想知道是否有一种方法可以只使用html在另一个html中包含一些html内容 PHP的替代品 <?php include("file.php"); ?> 这可能吗 编辑: 这带来了一些混乱,我需要的是“几乎是一个html标记”,它具有在另一个文档中包含html文档的功能。没有这样的东西。您必须使用服务器端脚本语言或JavaScript来执行类似操作。是的,但您需要在配置或.htaccess中启用它: Options +Includes AddType text/html .s

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

PHP的替代品

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

这可能吗

编辑:


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

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

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

Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml
当然,您需要将执行include操作的任何文件重命名为
.shtml
。。。或者您可以使用:

Options +Includes
AddType text/html .html
AddHandler server-parsed .html
语法本身类似于注释:

<!--#include virtual="/footer.html" -->


唯一需要的是纯html的iframe。但是您也可以使用javascript通过ajax获取页面,并将其包含到dom hirarchy中

这不能完全由HTML完成。(不过,也有iFrame,但我认为这不符合本例的条件。)


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

如果您使用的是Apache,您可以尝试。

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


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

在第一行之后放这行

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

希望这有帮助

您是否尝试过:

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

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



以上内容将使用
/path/to/include.html
的内容替换
div

html中缺少include\Import确实令人沮丧

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

几乎任何(如果不是全部)web主机服务器都支持SSI

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

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


浏览器本身无法执行像Include\Import这样简单的操作,这真让人恼火


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

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

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

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

不需要,但它也不需要像PHP这样的东西。这是一个服务器端包含,而不是普通的HTML。使用JavaScript也很容易,如果不是很容易的话。@tyler:除了移动客户端并生成一堆额外的请求之外……但它确实需要其他东西!那么为什么不使用PHP呢?@Col Shrapel:我也会使用PHP,但关键是它本质上是内置于Apache和IIS中的,因此不需要安装第三方模块。这将是唯一的原因。但实际上,谁没有安装PHP?这对我来说也毫无意义。。。但我没有问这个问题:-)我很有限,我实际上是在facebook上要求使用fmbl标签页。一个缺点是,没有启用JavaScript的用户不会看到这样写出来的内容。目前包括搜索引擎爬虫,所以内容不会出现在搜索引擎中。好的。。。thnx没有想到这一点!我不知道为什么这么多人投了反对票。它和这里的大多数解决方案一样好。@Trufa我相信他说的是iframes()的HTML5
无缝
属性,但目前对它的支持非常糟糕:
iframe无缝
来自规范。真遗憾。非常好,但我至少发现了一个陷阱:至少在chrome中,默认情况下,单击对象框内的链接将在对象内而不是在浏览器中打开新链接。在包含的文件中将link targets设置为target=“_top”是一种可能的解决方法。另一个注意事项是,您需要在主页和被调用的html文件中调用JS和CSS文件两次,如果html文件位于防火墙内的另一台服务器上怎么办?换句话说,是由我们控制的内容服务器。谢谢。看起来是最终的解决方案!但是我从Firefox那里得到一个错误,当在本地加载文件时(不是在FTP上):跨源请求被阻止:同源策略不允许在本地读取远程资源file:////_topmenu2.html. (原因:CORS请求不是http)。​
Exemple: ( "#content" ).load( "includes/menu.html" );