2010-02-07 2 views
5

J'ai donc un site Web et j'utilise un menu de base situé dans le coin supérieur droit de l'écran. Ses liens sont les suivants:Avoir un seul menu sur plusieurs pages?

| Home | Blog | Results | Pictures | Our Location | 

temps de formulaire en temps, je dois ajouter un nouveau lien vers le menu ou changer où l'un des liens pointe. Cela signifie que sur chaque page que le menu existe, je dois changer manuellement le lien. Il y a sûrement un moyen d'avoir un menu principal qui est juste mis sur chaque page.

Ou est-ce que je rêve?

+0

Solution disponible ici: http://stackoverflow.com/questions/39447411/how-to-load-nav-menu-from-an-external-file-no-wamp-all-code-must- be-browser – Ampere

Répondre

3

Placez le menu dans un fichier distinct et incluez-le côté serveur, soit en utilisant un langage de script complet comme PHP (une ligne) ou en utilisant SSI.

+0

Je ne connais pas php. Pourriez-vous donner un exemple d'utilisation de SSI? –

+1

Il y a un exemple SSI dans l'article lié (') et en PHP ce serait:' '. –

+0

S .: Donc je viens de découvrir que Yahoo Small Business ne supporte pas '.shtml'. D'autres options? –

3

Il existe plusieurs façons de procéder. Cela dépend de ce que vous avez accès au serveur. Peut-être le mécanisme le plus simple est server-side includes. Vous auriez juste un fichier qui contient le menu et l'incluez sur chaque page.

Vous pouvez également le faire avec chaque langage de programmation de manière plus ou moins élégante.

EDIT: Le SSI est assez simple. Vous pouvez simplement créer un fichier /header.html, puis faire:

<!--#include virtual="/header.html" --> 

à l'endroit approprié. Avoir un programme côté serveur déterminer quels menus et les emplacements des liens doivent être là.

0

Ensuite, utilisez ajax pour interroger périodiquement le script côté serveur pour obtenir le contenu du menu à l'heure actuelle.

Il serait facile de le faire envoyer des données de code XML comme:

<menu> 
    <link name="Home" href="destinationhome.html"/> 
... 
    <link name="Pictures" href="....html"/> 
</menu> 

Ensuite, construire vos liens à partir de ces données.

1

utiliser le PHP include sur toutes vos pages

<?php include 'includes/menu.php'; ?> 

et ont une menu.php séparée dans un dossier nommé 'comprend'. vous devez enregistrer toutes les pages oyur comme .php

vous pouvez faire votre pied de page comme un include trop

0

Vous pouvez générer des pages à partir de modèles avant de les télécharger: Voir Template Toolkit.

1

Je pense que c'est la façon la plus facile de le faire sans un langage côté serveur. Utilisez une bibliothèque javascript comme W3Data. Tout ce que vous devez faire est d'ajouter l'attribut w3-include-html à votre div. Terminé! Si votre menu se trouve dans un fichier appelé menu.html, vous feriez quelque chose comme ceci.

<div w3-include-html="menu.html"></div> 
+0

J'ai expérimenté différentes approches et cela fonctionne parfaitement. La bibliothèque est w3.js des écoles W3 et son utilisation est bien documentée sur le site des écoles W3. –

Questions connexes