如何在不使用php的情况下制作模块化网站?

时间:2015-02-13 12:53:55

标签: html web modularity modular

例如,使用php会将其添加到index.php

<?php include("footer.php"); ?>

并在footer.php中添加html代码。

但是,如果不使用php或iframe,只能使用html进行相同操作吗?

2 个答案:

答案 0 :(得分:0)

我认为在纯HTML中,唯一的方法是使用iframe,对不起!

答案 1 :(得分:0)

您可以尝试使用localStorage:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

  

Web Storage API提供了一种机制,通过这种机制,浏览器可以以比使用cookie更直观的方式存储键/值对。

这个想法的一个例子(很明显,SO不允许在片段中使用它) 它可以在这里测试/复制https://codepen.io/gc-nomade/pen/oGorNw

window.onload = function() {
  var loaded = localStorage.getItem("header");
  if (loaded) {// if already set, load it from visitor 
    var header = localStorage.getItem("header");
    var aside = localStorage.getItem("aside");
    var footer = localStorage.getItem("footer");
    document.getElementById("headers").innerHTML = header;
    document.getElementById("aside").innerHTML = aside;
    document.getElementById("footer").innerHTML = footer;
  } else {// if first visit, load and store basic content once
    var top = "<h1>hello</h1>";
    var side = '<ul><li><a href="#">link</a>';
    var bottom = "<p>My footer loaded via local storage </p>";
    localStorage.setItem("header", top);
    localStorage.setItem("aside", side);
    localStorage.setItem("footer", bottom);
  }
};
body {
  margin: 0;
  display: flex;
  flex-flow: column;
  height: 100vh;
  background: crimson;
}

main {
  flex: 1;
  display: flex;
  box-shadow: 2px;
}

aside {
  width: 200px;
  border: solid 2px;
  background: tomato;
}

footer,
header {
  background: lightblue;
  box-shadow: 0 0 0 2px;
  text-align: center;
}

aside img {
  max-width: 50%;
  display: block;
  margin: 5vh auto;
}
<header id="headers"></header>
<main>
  <aside id="aside"></aside>
  <section> page content</section>
</main>
<footer id="footer"></footer>