使用html5在html中包含html文件

lol*_*olo 16 html html5

我有2个HTML文件,假设a.htmlb.html.在a.html我想包括b.html.

在JSF中,我可以这样做:

<ui:include src="b.xhtml" />
Run Code Online (Sandbox Code Playgroud)

这意味着内部a.xhtml文件,我可以包括b.xhtml.

我们怎么能在*.html文件中做到这一点?

使用html 5(如果可以在html 5中完成).

gre*_*man 34

令人惊讶的是,同样的问题被提出并且有可能:HTML5包含文件

拉法的回答:


使用object标签:

<object name="foo" type="text/html" data="foo.inc"></object>
Run Code Online (Sandbox Code Playgroud)

foo.inc应该包含有效的HTML.


我在Konqueror,Firefox和Chromium上测试过它.

请注意,必须使用单独的</object>标记,否则丢弃之后的任何内容.

如果你发现它有用(我这样做),请upvote Rafa答案(不是我的),因为"它不可能"正在传播疾病.

  • 这是一件可怕的事情. (5认同)
  • Ian Devlin - 说"这是一件可怕的事情." 似乎没用.如果可怕的话,为什么呢?(即,如果答案是有更好的选择,说出它们是什么.你认为服务器端包括吗?包括带脚本的文件(js,php,ruby)?如果你有更好的方法,说出那是什么,或者什么都不说.而BTW,在我的估计中,替代品都有明显的缺点,主要是更复杂的代码(如果有人只知道HTML)和潜在的"服务器缺乏控制",这使得这种方法需要考虑. (5认同)
  • +1但是[W3C验证器](http://validator.w3.org/)不喜欢它并且"include"之后的内容没有显示(在Chrome中,我没有测试其他浏览器).W3C反对自闭标签.我用结尾`</ object>`替换它,然后验证并显示以下内容. (2认同)

Tor*_*amo 6

如果您的服务器支持SSI(服务器端包含),您可以将以下内容放在html文件中,而无需脚本语言或其他任何内容.Apache默认启用SSI(我认为?)

<!--#include file="same_path_file.html" -->
<!--#include virtual="docroot_file.html" -->
Run Code Online (Sandbox Code Playgroud)

"file"是相对于当前文件的,并且可能用于包含相关文件,例如"relevant_article_poll.html".

"virtual"是相对于文档根目录(即您的网站根目录),您可以使用它来包含全局文件,如页眉和页脚.

你选择哪一个并不重要,但知道两者之间的区别是有用的.

此外,include指令为每个文件向服务器发出一个新的内部http请求,因此您可以包含php文件等,并且它们将按照应有的方式执行.

以下是SSI的有用概述:http://en.wikipedia.org/wiki/Server_Side_Includes