如何在不包含frame / iframe的HTML页面中包含HTML页面?

我想在HTML页面中包含一个HTML页面。 可能吗?

我不想在PHP中这样做,我知道在PHP中,我们可以使用include来处理这种情况,如何在不使用iframeframe概念的情况下在纯HTML中实现同样的function?

如果你只是想从另一个文件中粘贴自己的HTML,并且你认为服务器端包含是“纯HTML”(因为它看起来像一个HTML注释,而不是像PHP那样使用“脏”的东西):

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

你可以使用一个对象元素

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

或者,在本地服务器上,AJAX可以返回一个HTML(responseText)string,您可以使用它来创build一个新的窗口,或者编辑出头部和主体标签,并将其余部分添加到div中的div或另一个块元素当前页面。

如果你的意思是客户端,那么你将不得不使用JavaScript或框架。
简单的方法开始,试试jQuery

 $("#links").load("/Main_Page #jq-p-Getting-Started li"); 

更多在jQuery文档

如果你想使用IFrame,那么就从维基百科开始

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Example</title> </head> <body> The material below comes from the website http://example.com/ <iframe src="http://example.com/" height="200"> Alternative text for browsers that do not understand IFrames. </iframe> </body> </html> 

你可以使用HTML5来做到这一点:

  <link rel="import" href="/path/to/file.html"> 
 <iframe src="page.html"></iframe> 

您将需要添加一些样式到这个iframe。 你可以指定宽度,高度,如果你想看起来像原始页面的一部分,包括frameborder="0"

纯粹的HTML没有其他的方法。 这就是他们build造的,就像是说我想把一个没有蛋的鸡蛋炒一下。

 <html> <head> <title>example</title> <script> $(function(){ $('#filename').load("htmlfile.html"); }); </script> </head> <body> <div id="filename"> </div> </body> 

如果你愿意使用jQuery,有一个方便的jQuery插件称为“公司”。

我经常使用它进行网站原型制作,我只想用静态的HTML呈现客户端,没有可以快速创build/编辑/改进/重新呈现的后端图层

http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html

例如,菜单和页脚等东西需要显示在每一页上,但是你不想最后得到一个复制和粘贴

您可以按如下所示包含页面片段

 <p class="inc:footer.htm"></p> 
 $.get("file.html", function(data){ $("#div").html(data); }); 

你可以说这是用PHP,但实际上它只有一个PHP命令,所有其他文件只是* .html。

  1. 你应该在你的web服务器的/ public_html目录或者其他目录下有一个名为.htaccess的文件,你的html文件将会在这里,你将在其中处理一个命令。
  2. 如果你没有它(或者它可能被隐藏(你应该通过检查隐藏文件的目录来检查这个目录列表)),你可以使用记事本创build它,然后在其中input一行:
    AddType application/x-httpd-php .html
  3. 用名称.htaccess保存该文件,并将其上传到服务器的主目录。
  4. 在任何想要显示外部“meniu.html”文件的html文件中,添加te命令: <?php include("meniu.html"); ?>

就这样!

备注:所有命令都像<? ...> <? ...>将被视为php可执行文件,所以如果你的html有问号,那么你可能会有一些问题。

另外请确保检查如何使用Angular包括 (使用AngularJS )。 这非常简单

 <body ng-app=""> <div ng-include="'myFile.htm'"></div> </body> 

最好的,我有:包括在您的js文件,并包括您可以添加这种方式的意见

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Bootstrap</title> <!-- Your custom styles (optional) --> <link href="css/style_different.css" rel="stylesheet"> </head> <body> <script src="https://www.w3schools.com/lib/w3data.js"></script> <div class=""> <div w3-include-html="templates/header.html"></div> <div w3-include-html="templates/dashboard.html"></div> <div w3-include-html="templates/footer.html"></div> </div> </body> <script type="text/javascript"> w3IncludeHTML(); </script> </html> 

如果您在Linux上使用NGINX并且想要一个纯粹的bash / html,您可以在您的模板上添加一个掩码,并通过使用regullarexpression式来pipe理使用sed命令进行replace的请求。

无论如何,我宁愿有一个bash脚本,从模板文件夹,并生成最终的HTML。

来自nginx的最佳解决scheme: http : //sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html

确认roadkill,创build一个.htaccess文件在一个单一的网站,允许您添加PHP代码到一个.html文件的web根目录。

AddType应用程序/ x-httpd-php .html