我可以将网站的常见元素作为对象共享吗?

时间:2014-11-15 22:41:10

标签: html

我一直在重新设计一个我几年前建立的网站,最初使用框架,所以网站使用CSS和div标签。为了使我的网页设计尽可能灵活,我希望分享共同的元素,例如页面顶部的横幅和页脚等,以便它们链接到一个公共文件 - 并更改此文件导致所有其他页面的更改。我一直在努力做到这一点,没有设置PHP或ASP等服务器端的麻烦。

我发现以下解决方案有效,但是在网上没有找到它的引用,以下解决方案的缺点是什么?

<div id="wrapper">
<div id="header"><object type="text/html" data="test.html" style="width:100%; height:100% margin:0"></object></div>
<div id="content">Individual page content here.</div></div>

test.html文件包含公共标题。

2 个答案:

答案 0 :(得分:0)

设置某种服务器端脚本有很多好处。我能想到的第一个是HTTP请求较少,这会使页面加载速度更快。其次,它的设置非常简单,它增加了一个全新的功能世界。第三,我很少遇到<object>元素的合法用例。

话虽如此,PHP中的一个实现可以如下所示,在index.php文件中:

<?php require_once('header.php'); ?>
<!-- index.php content goes here! -->
<?php require_once('footer.php'); ?>

显然,您的header.phpfooter.php文件将包含页眉和页脚模板,这些模板将包含在每个页面加载中。

这种方法大大简化了您的开发并提供了更快的用户体验。当然,您不需要使用PHP,您可以使用Python或任何其他服务器端脚本语言。我只是以它为例。

答案 1 :(得分:0)

如果您不想使用服务器端编程(也可以是CMS),SSI或本地工具(例如static site generators):

普通HTML5提供three ways to embed an HTML document in an HTML document

  • embed
  • iframe
  • object
  

[...]但未在网上找到任何引用

HTML5规范包含example using object

  

在此示例中,使用object元素将HTML页面嵌入到另一个页面中。

<figure>
  <object data="clock.html"></object>
  <figcaption>My HTML Clock</figcaption>
</figure>

缺点?那么,您感兴趣的所有用户代理都必须支持object元素。 可能是某些消费者(例如,某些搜索引擎)没有像这样嵌入内容的索引(但讨论这是关于SO的偏离主题)。