【问题标题】:Embedding HTML with <object>/<embed> introduces BODY and HTML tags使用 <object>/<embed> 嵌入 HTML 引入了 BODY 和 HTML 标签
【发布时间】:2017-09-28 16:17:44
【问题描述】:

我需要将一个子 HTML 嵌入另一个 HTML。我正在使用两种方法,

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

<embed type="text/html" src="test.html">

但这会插入 HEAD 和 BODY 标签,即使我的子页面没有它们。通过子页面 test.html 仅包含以下内容,没有其他内容

<div>
    <p>Test Paragraph</p>
</div>

生成的 DOM:

这可能会引入 HTML 验证问题和间距。人们会使用这些方法吗?有没有办法在没有额外的 HEAD/BODY 的情况下嵌入?

注意不能使用 iframe,它们已经过时并引入了其他问题。

【问题讨论】:

  • iframes 也许?
  • 抱歉不能使用 iframe。它们已经过时并引入了许多其他问题。

标签: html


【解决方案1】:

您有多种选择,除了 iframe,您还可以:

  • 使用 javascript 框架/lib,它使您可以选择通过 Ajax 加载“子页面”,例如在 jQuery 中,.load() 函数。

  • 使用服务器端语言,即在 PHP 中,您可以使用 includeinclude_oncerequirerequire_once

  • HTML Imports, &lt;link rel="import" href="path-to-file/filename.html"&gt;, 是最好的,恕我直言,这应该早就实现了,但问题是它缺乏广泛的浏览器支持,目前只有 Chrome 和 Opera,caniuse.com/imports

【讨论】:

  • 是的,我最终在 DIV 元素上使用了 JS .load()。最安全的选择。
猜你喜欢
  • 2012-06-27
  • 2011-05-31
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2015-04-16
  • 2012-08-02
  • 2011-06-05
相关资源
最近更新 更多