Как создать заголовок html для каждого файла в проекте с помощью javascript?

Я работаю над простым сайтом страниц GitHub, используя HTML и javascript. Поскольку страницы не предлагают поддержку 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>

Я просто не был уверен, что это хорошая практика!

Если есть способ добиться того же эффекта, но более традиционный, я бы с удовольствием его услышал.

Метод jQuery load() позволяет включать заголовок и меню на каждой странице.

Chaska 07.05.2019 05:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать Импорт HTML.

Раздел <head>, который вы размещаете на каждой странице, будет ссылаться на один файл импорта:

<head>
  <link rel = "import" href = "/path/to/import.html">
</head>

С вашим файлом импорта, содержащим то, что вы хотите загрузить в раздел <head> каждой страницы:

<link rel = "stylesheet" href = "style.css">
<script src = "script.js"></script>

Обратите внимание, что файл импорта не должен содержать теги <head></head>, а только содержание.

Это кажется полезным, но я не уверен, что это отвечает на мой вопрос. Я просил наиболее подходящий способ изменить атрибуты href ссылок в html-файлах в подпапках, извините, если это было неясно.

Hugh Carstensen 07.05.2019 06:05
Ответ принят как подходящий

Фрагмент 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">

Другие вопросы по теме