我了解HTML和CSS,但不了解JS。我正在从头开始构建静态博客,并面对自己的问题。创建帖子时,我将重复所有帖子文档中的所有页面元素,因此,例如,如果要向菜单添加链接,则需要编辑所有文件。
因此,我正在寻找一种将菜单和导航分开的文档的方法。因为如果我编辑它们,菜单将在所有帖子中更新。
我发现这种方法显然有效:https://www.w3schools.com/howto/howto_html_include.asp(下面的代码)
但是,现在,我不知道这是否是最好的方法,并且我不想在将来发现它的问题,并且发现我将需要编辑所有文件。
这是一种好方法还是另一种更好? ps:不,我不要CMS。
这是方法: 过去这个
<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("w3-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("w3-include-html");
includeHTML();
}
}
xhttp.open("GET", file, true);
xhttp.send();
/* Exit the function: */
return;
}
}
}
</script>
这在体内
<div w3-include-html="content.html"></div>
<script>
includeHTML();
</script>