如何在不包含frame / iframe的HTML页面中包含HTML页面?
我想在HTML页面中包含一个HTML页面。 可能吗?
我不想在PHP中这样做,我知道在PHP中,我们可以使用include
来处理这种情况,如何在不使用iframe
和frame
概念的情况下在纯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/编辑/改进/重新呈现的后端图层
例如,菜单和页脚等东西需要显示在每一页上,但是你不想最后得到一个复制和粘贴
您可以按如下所示包含页面片段
<p class="inc:footer.htm"></p>
$.get("file.html", function(data){ $("#div").html(data); });
你可以说这是用PHP,但实际上它只有一个PHP命令,所有其他文件只是* .html。
- 你应该在你的web服务器的/ public_html目录或者其他目录下有一个名为.htaccess的文件,你的html文件将会在这里,你将在其中处理一个命令。
- 如果你没有它(或者它可能被隐藏(你应该通过检查隐藏文件的目录来检查这个目录列表)),你可以使用记事本创build它,然后在其中input一行:
AddType application/x-httpd-php .html
- 用名称.htaccess保存该文件,并将其上传到服务器的主目录。
- 在任何想要显示外部“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