如何从其他HTML加载部分HTML?

时间:2018-05-26 07:44:21

标签: html

我正在用HTML写一本书。如果我在一个html文件中编写它,整个代码变长,所以我想将每个章节保存到不同的文件并在主html中加载它们。我的意思是有chapter1.htmlchapter2.html等文件,我希望将其内容包含在另一个文件main.html中。

这可能吗?

3 个答案:

答案 0 :(得分:2)

您可以使用iframe将每个页面嵌入main.html

例如:

<iframe src="chapter1.html"></iframe>
<iframe src="chapter2.html"></iframe>

You could also create it into a slideshow, so that it looks more like a book.

答案 1 :(得分:2)

如果您希望动态执行此操作。您可以使用javascript代替<iframe>。保存要包含在content.html

中的HTML内容
<script>
function includeHTML() {
  var z, i, elmnt, file, xhttp;
  /*loop through a collection of all HTML elements:*/
  z = document.getElementsByTagName("*");
  for (i = 0; i < z.length; i++) {
    elmnt = z[i];
    /*search for elements with a certain atrribute:*/
    file = elmnt.getAttribute("data-include-html");
    if (file) {
      /*make an HTTP request using the attribute value as the file name:*/
      xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4) {
          if (this.status == 200) {elmnt.innerHTML = this.responseText;}
          if (this.status == 404) {elmnt.innerHTML = "Page not found.";}
          /*remove the attribute, and call this function once more:*/
          elmnt.removeAttribute("data-include-html");
          includeHTML();
        }
      } 
      xhttp.open("GET", file, true);
      xhttp.send();
      /*exit the function:*/
      return;
    }
  }
}
</script>

您可以将其添加到HTML页面,如下所示。

<div data-include-html="content.html"></div>

答案 2 :(得分:1)

这取决于你想要达到的目标。一般来说,通过章节分割内容并链接到它们并不错。这样读者就不会被淹没,如果这本书很大,它会减少加载时间。

您希望在何处以及如何发布该图书? HTML提供了多种方法来执行您想要的操作(Frames和iFrames,而不是#34;酷&#34;现在),但是如果您使用某些服务器端脚本(如CMS),您可以使用其他意味着那里。

或者你可以分离html文件,然后使用一些简单的连接(比如批处理/ linux shell)来生成一个大的输出html。