(嵌入 HTML header/footer 和 <object> 标签的缺点?
(Dis-)advantages of embedding HTML header/footer with <object> tags?
我正在寻找一种简单的方法来使我的网站模块化,并将经常出现的常见部分(如页眉和页脚)提取到单独的文件中。
就我而言,我不能使用任何服务器端包含,例如PHP。我通常也想避免为了这样一个简单的任务而包含像 JQuery 这样的大型库。
现在我遇到 ,它建议简单地使用 HTML <object>
标记将另一个 HTML 文件包含到页面中,如下所示:
<object data="parts/header.html" type="text/html">header goes here</object>
我可能在这里遗漏了一些重要的东西,但对我来说,这种方式似乎完全符合我的需要。它非常简短和精确,所有浏览器都很好地支持 <object>
标签,我不需要包含任何大库,实际上我什至不需要任何 JavaScript,这允许用户阻止仍然可以查看正确的页面结构和布局。
那么,这种方法有什么我目前还没有意识到的缺点吗?我怀疑的主要原因是,在关于如何包含 HTML 片段的数十个答案中,只有一个推荐 <object>
而所有其他人都采用 PHP 或 JavaScript/JQuery 方式.
此外,关于如何将 <object>
标记放入我的主页,或者关于我想以这种方式包含的文件的结构,我是否需要注意任何特别的地方?比如,嵌入文件可能是一个完整的 HTML 文档,其中包含 <!DOCTYPE>
、<html>
、<head>
和 <body>
或 should/must 我去掉所有这些结构只留下内部 HTML 元素?以这种方式在 HTML 中使用 JavaScript 或 CSS 有什么特别之处吗?
<object>
标签对 HTML 内容的使用与 <iframe>
的使用非常相似。两者都只是将网页作为单独的文档加载到框架中,该框架本身就是主文档的 child。
frames在web开发的早期曾经很流行,后来以<frame>
标签的形式出现。然而,它们通常不被接受,您真的应该尽可能少地使用它们。
为什么不使用这种技术来显示您自己的内容
child 框架中的 HTML 内容无法与 parent 通信。例如,您不能使用 parent HTML 中的脚本与 child 进行通信,反之亦然。当您想显示静态文本以外的任何内容时,这对于提供您自己的内容不是很有用。
为什么不使用这种技术来显示别人的内容
您也不能使用它来提供大量外部内容。许多网站(包括例如 SO)发送一个 X-Frame-Options
header 连同其具有值 SAMEORIGIN
的网页。这会阻止您的内容被加载和显示。
我正在寻找一种简单的方法来使我的网站模块化,并将经常出现的常见部分(如页眉和页脚)提取到单独的文件中。
就我而言,我不能使用任何服务器端包含,例如PHP。我通常也想避免为了这样一个简单的任务而包含像 JQuery 这样的大型库。
现在我遇到 ,它建议简单地使用 HTML <object>
标记将另一个 HTML 文件包含到页面中,如下所示:
<object data="parts/header.html" type="text/html">header goes here</object>
我可能在这里遗漏了一些重要的东西,但对我来说,这种方式似乎完全符合我的需要。它非常简短和精确,所有浏览器都很好地支持 <object>
标签,我不需要包含任何大库,实际上我什至不需要任何 JavaScript,这允许用户阻止仍然可以查看正确的页面结构和布局。
那么,这种方法有什么我目前还没有意识到的缺点吗?我怀疑的主要原因是,在关于如何包含 HTML 片段的数十个答案中,只有一个推荐 <object>
而所有其他人都采用 PHP 或 JavaScript/JQuery 方式.
此外,关于如何将 <object>
标记放入我的主页,或者关于我想以这种方式包含的文件的结构,我是否需要注意任何特别的地方?比如,嵌入文件可能是一个完整的 HTML 文档,其中包含 <!DOCTYPE>
、<html>
、<head>
和 <body>
或 should/must 我去掉所有这些结构只留下内部 HTML 元素?以这种方式在 HTML 中使用 JavaScript 或 CSS 有什么特别之处吗?
<object>
标签对 HTML 内容的使用与 <iframe>
的使用非常相似。两者都只是将网页作为单独的文档加载到框架中,该框架本身就是主文档的 child。
frames在web开发的早期曾经很流行,后来以<frame>
标签的形式出现。然而,它们通常不被接受,您真的应该尽可能少地使用它们。
为什么不使用这种技术来显示您自己的内容
child 框架中的 HTML 内容无法与 parent 通信。例如,您不能使用 parent HTML 中的脚本与 child 进行通信,反之亦然。当您想显示静态文本以外的任何内容时,这对于提供您自己的内容不是很有用。
为什么不使用这种技术来显示别人的内容
您也不能使用它来提供大量外部内容。许多网站(包括例如 SO)发送一个 X-Frame-Options
header 连同其具有值 SAMEORIGIN
的网页。这会阻止您的内容被加载和显示。