Pour une installation rapide avec un simple javascript et parce qu'il n'y a pas encore de réponse, vous pouvez également utiliser un fichier de type .js
pour stocker vos pièces redondantes (modèles) de HTML dans une variable et l'insérer par innerHTML
.
backticks sont ici les facilitez-vous la tâche cette réponse est sur.
(vous voudrez également suivre le lien sur cette Q/A sur les backticks SO si vous lisez et testez cette réponse). .
exemple pour une barre de navigation qui reste la même sur chaque page :
<nav role="navigation">
<a href="http://stackoverflow.com/" class="here"><img src="image.png" alt="Home"/></a>
<a href="http://stackoverflow.com/about.html" >About</a>
<a href="http://stackoverflow.com/services.html" >Services</a>
<a href="http://stackoverflow.com/pricing.html" >Pricing</a>
<a href="http://stackoverflow.com/contact.html" >Contact Us</a>
</nav>
Vous pouvez garder à l'intérieur de votre HTMl :
<nav role="navigation"></nav>
et placé à l'intérieur nav.js
le contenu du fichier <nav>
comme une variable entre les points de suspension :
const nav= `
<a href="http://stackoverflow.com/" class="here"><img src="image.png" alt="Home"/></a>
<a href="http://stackoverflow.com/about.html" >About</a>
<a href="http://stackoverflow.com/services.html" >Services</a>
<a href="http://stackoverflow.com/pricing.html" >Pricing</a>
<a href="http://stackoverflow.com/contact.html" >Contact Us</a>
` ;
Vous avez maintenant un petit fichier à partir duquel vous pouvez récupérer une variable contenant du HTML. Il ressemble beaucoup au fichier include.php et peut facilement être mis à jour sans le perturber. (ce qui est à l'intérieur des backticks) .
Vous pouvez maintenant lier ce fichier comme n'importe quel autre fichier javascript et innerHTML la variable nav
à l'intérieur de <nav role="navigation"></nav>
via
let barnav = document.querySelector('nav[role="navigation"]');
barnav.innerHTML = nav;
Si vous ajoutez ou supprimez des pages, vous ne devez effectuer la mise à jour qu'une seule fois. nav.js
Une page HTML de base peut être :
// code standing inside nav.js for easy edit
const nav = `
<a href="http://stackoverflow.com/" class="here"><img src="image.png" alt="Home"/></a>
<a href="http://stackoverflow.com/about.html" >About</a>
<a href="http://stackoverflow.com/services.html" >Services</a>
<a href="http://stackoverflow.com/pricing.html" >Pricing</a>
<a href="http://stackoverflow.com/contact.html" >Contact Us</a>
`;
nav[role="navigation"] {
display: flex;
justify-content: space-around;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home</title>
<!-- update title if not home page -->
<meta name="description" content=" HTML5 ">
<meta name="author" content="MasterOfMyComputer">
<script src="nav.js"></script>
<!-- load an html template through a variable -->
<link rel="stylesheet" href="css/styles.css?v=1.0">
</head>
<body>
<nav role="navigation">
<!-- it will be loaded here -->
</nav>
<h1>Home</h1>
<!-- update h1 if not home page -->
<script>
// this part can also be part of nav.js
window.addEventListener('DOMContentLoaded', () => {
let barnav = document.querySelector('nav[role="navigation"]');
barnav.innerHTML = nav;
});
</script>
</body>
</html>
Cet exemple rapide fonctionne et peut être copié/collé puis modifié pour changer les noms des variables et leur contenu HTML.