javascript - 如何使用 javascript 为项目中的每个文件创建一个 html 标头?
问题描述
我正在使用 HTML 和 javascript 开发一个简单的 GitHub 页面站点。由于页面不支持 PHP 或 SSI 包含来自单独 HTML 文件的 HTML 标头,因此我需要编写一个脚本来创建标头图像并在菜单功能区中建立链接。
假设为了理解这个网站由三个文件组成,其路径是:
root/index.html
root/A/pageA.html
root/B/pageB.html
标头应该有一个指向这些文件的链接。
我能想出的唯一解决方案是在所有文件中使用这些:
<a href='https://somewhere.something/index.html'>Index</a>
<a href='https://somewhere.something/A/pageA.html'>A</a>
<a href='https://somewhere.something/B/pageB.html'>B</a>
我只是不确定这是否是一个好习惯!
如果有一种方法可以实现更传统的相同效果,我很想听听。
解决方案
下面的 SO 代码段不起作用,但这里是工作示例- 单击左侧菜单,查看页面源代码)
async function load(url) {
let html = await (await fetch(url)).text();
pageBody.innerHTML = html;
}
let page = location.search.substr(1) || 'index';
load(page + '.html');
<h1>My site</h1>
<ul>
<li><a href="?index" >Main</a></li>
<li><a href="?A/pageA" >A</a></li>
<li><a href="?B/pageB" >B</a></li>
</ul>
<div id="pageBody">
推荐阅读
- http-headers - `content-security-policy: default-src https:;` 以内联 1:1 阻止资源加载
- reactjs - 在浏览器中获取 refresh_token 时遇到问题。无法读取 XML 响应
- c# - 将 IntPtr 作为函数的参数传递会导致内存泄漏吗?
- racket - 如何“要求”没有#lang 标题行的 Racket 模块?
- windbg - 是否可以在 windbg 中调用 win32 调用?
- swift - 以自定义尺寸阅读图库视频
- mysql - 无法使用容器密码使用 mysql 不起作用
- mongodb - Robo3T 不显示数据库
- javascript - 将多个textarea的值添加到另一个textarea提交
- laravel - 如何在 Laravel 上使用 Eloquent 将所有行从源表复制到另一个表