Ga naar inhoud

[CSS/HTML] Probleem menu op de site


anoniem

Aanbevolen berichten

Ik heb een hoofdmenu op mijn site gezet, waarbij je als je met de muis over 1 v.d. links gaat, er automatisch een keuzemenu verschijnt met een aantal opties. De site telt een heel aantal pages en op elke page heb ik dus het betreffende hoofdmenu staan. Nu is het probleem dat als ik iets wil veranderen aan het hoofdmenu, ik het op elke pagina moet veranderen en dat is bijna niet te doen. Ik heb van alles geprobeerd om het hoofdmenu in een bestand te zetten en dan elke page ernaar te verwijzen, maar dat is niet gelukt. Hier volgende de codes die ik heb gebruikt. Op elke page verwijs ik wel naar een CSS-bestand waarin de vormgeving van het menu is weergegeven. Dat is de volgende verwijzing in de head: [code:1:9a90b35573]<link rel=stylesheet type="text/css" href="menu.css">[/code:1:9a90b35573] De inhoud van menu.css is: [code:1:9a90b35573]<style> <!-- .menuskin{ position:absolute; width:209px; background-color:48A3F3; border:2px solid black; font:normal 12px Tahoma; font-weight:bold; line-height:18px; z-index:100; visibility:hidden; } .menuskin a{ text-decoration:none; color:F8BB7E; padding-left:10px; padding-right:10px; } #mouseoverstyle{ background-color:48A3F3; } #mouseoverstyle a{ color:black; } --> </style>[/code:1:9a90b35573] Verder heb ik in elke body het volgende staan: [code:1:9a90b35573]<script language="JavaScript1.2" src="menu.js"> </script> <div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off');dynamichide(event)"> </div>[/code:1:9a90b35573] In menu.js staat o.a. de inhoud van de keuzemenu's, waarbij ik nu 1 keuzemenu weergeef: [code:1:9a90b35573]linkset[5]='<div class="menuitems"><a href="symbolen.htm">Joodse Symbolen</a></div>' linkset[5]+='<div class="menuitems"><a href="feesten.htm">Joodse Feesten</a></div>'[/code:1:9a90b35573] Tenslotte staan er op elke page alle links van het hoofdmenu, waarbij ik er weer 1 van weergeef: [code:1:9a90b35573]<tr> <td><font size="-1"><b><a href="#" onMouseover="showmenu(event,linkset[5])" onMouseout="delayhidemenu()">Cultuur</a></b></font></td> </tr> [/code:1:9a90b35573] Wie kan mij raad geven hoe ik het voor elkaar kan krijgen om bij een wijziging niet steeds alles pages moet gaan aanpassen? Voor de duidelijkheid: geen scriptrequests, maar tips... O ja, ik heb dus elke link van het hoofdmenu in een tabel staan, misschien dat dat een probleem op kan leveren?
Link naar reactie
OK, duidelijk... Met ASP/PHP kan ik niet overweg en om nu alles om te gaan gooien naar frames is ook zo wat. Het heeft me namelijk aardig wat moeite gekost om de achtergrond van de site netjes te verdelen over tabellen. Daarbij komt ook nog dat je dan weer met het probleem zit dat de keuzemenu's die verschijnen, in een ander frame weergegeven moeten worden, anders vallen ze weg. Dus daar begin ik niet aan. Maar bedankt voor je antwoord... Ik weet waar ik nu aan toe ben...
Link naar reactie
Ik zou ook frames gebruiken want iedere keer het menu laden gaat nogal ten koste van de snelheid. Als je dat toch niet wilt is misschien een tip om een replace-functie te gebruiken die in (goede) HTML editors zitten. Bijv.: Homesite, dus Dreamweaver ook, heeft een functie "extended replace" waarmee je in een keer een stukje code van alle pagina's kan vervangen door een ander stukje code. Succes, Henkz
Link naar reactie
[quote:7fc0799b05="Phrea"]Klinkt lullig, maar dat lukt zo niet. Je moet dan gebruik gaan maken van PHP/ASP of frames.[/quote:7fc0799b05] Toch nog ff over jouw antwoord, Phrea: Kun je misschien ook aangeven waarom dat niet gaat lukken? Kijk, ik had namelijk eerst ook de inhoud van menu.js op elke page staan. Dat heb ik inmiddels kunnen veranderen door het in een apart bestand (menu.js) te plaatsen en dan op elke page alleen maar te verwijzen naar menu.js. Waarom kan het op die manier niet dan? Dus ook de rest van de code van het menu dat op elke page staat in 1 bestand plaatsen? Of kan het niet omdat ik alle links van het menu in een tabel heb gezet?
Link naar reactie
Ik weet dat er met php een mogelijkheid is om een bestand aan te maken waarin een stuk kode staat, zoals bijvoorbeeld je menu. en dat kan je in elke pagina aanroepen met een include opdracht. Maar daarvoor moet je server wel php ondersteunen. Als je wilt zoek ik het wel effe op, ik heb de boek hier nu niet bij mij liggen maar morgen zal het wel lukken.
Link naar reactie
Dat was dus al (een paar keer) opgemerkt.. Met .js files moet het prima gaan, het is absoluut niet nodig om dit met php een ander serverside tool te doen. Alleen ben je dan wel afhankelijk van javascript. Wat ging er verkeerd bij het includen van dat .js bestand? Bedenk wel dat het gewoon een groot script is en dat alle html-output in een document.write() o.i.d. moet komen te staan..
Link naar reactie
Het PHP/ASP-verhaal gaat iig niet door, aangezien de server waar de site op staat het simpelweg niet ondersteunt. Ik had het ook liever anders gezien, maar ja.... Ik ben nog geen eigen baas hier... :lol: Het liefst zou ik idd de oplossing zien te vinden in JS, dus door alles in 1 bestand te zetten en dan een verwijzing naar dat bestand op elke page. Maar nogmaals, dat lukt dus niet. Ik heb nu dus al 1 JS-bestand, zoals hierboven aangegeven. Als ik de rest van de code van het hoofdmenu, die ik nu nog in de body van elke page heb staan, er gewoon onder plak, wordt het menu niet weergegeven... Wat doe ik fout? Jurriaan had het over document.write()?
Link naar reactie
hoe zou je het doen als je op al die pagina's javascript zou gebruiken om het menu te maken? dan zet je op elke pagina een stuk javascript. Javascript is geen html, dus om html weer te geven, zul je een commando moeten gebruiken. in dit geval is dat dus document.write om iets direct naar (het te maken) html document te schrijven. als je dus dit doet: <table><tr><td> <script> document.write('<b>menu</b>'); document.write('<li>1e menuoptie'); document.write('<li>2e menuoptie'); document.write('<li>3e menuoptie'); </script> </td></tr></table> dan leest de browser het volgende: <table><tr><td> <b>menu</b> <li>1e menuoptie <li>2e menuoptie <li>3e menuoptie </td></tr></table> en rendert dat vervolgens. Het enige verschil hiermee is dat je dat stukje javascript in een apart bestand zet (zonder scripttags, het is tenslotte geen html).
Link naar reactie
Jurriaan, bedankt voor tip! Alleen wil het niet lukken. Het menu verschijnt echt niet. Ik heb nu de volgende code in menu2.js geplaatst:[code:1:cba06a44fc]<table><tr><td> <script> document.write('<li><b><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">Home</a></b>'); document.write('<li><b><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">Opties</a></b>'); </script> </td></tr></table>[/code:1:cba06a44fc] Op elke page moet dus i.p.v. bovenstaande code een verwijzing komen te staan naar menu2.js. Dat heb ik dus zo gedaan:[code:1:cba06a44fc]<script language="JavaScript1.2" src="menu2.js">[/code:1:cba06a44fc] Maar het mag nog niet baten....
Link naar reactie
OK, maar nu heb ik het dus zo gedaan:[code:1:d4ff7b6558]document.write('<li><b><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">Home</a></b>'); document.write('<li><b><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">Opties</a></b>');[/code:1:d4ff7b6558] ... maar ik zie geen verschil. Oftewel, het menu verschijnt niet...
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...