Pagina 1 di 1
menu multibrowser
Inviato: giovedì 4 ottobre 2007, 22:42
da daemon_nio
è da un po' faccio siti internet amatoriali ma per la prima volta voglio fare qualcosa che sia multibrowser... e mi sono perso proprio all'inizio.
Come si fa a fare un menu laterale multibrowser?
O meglio... voglio un menu laterale che scrivo una sola volta e sia valido per tutte le pagine, nel senso che se voglio modificare le voci, lo faccio una sola volta e la modifica viene apportata per tutte le pagine.
Ho provato a farlo in ajax seguendo questa guida
ajax in modo da avere quasi tutto il sito statico e solo la pagina con il testo dinamica.
Funziona perfettamente, nel senso che è multibrowser per IE e la famiglia mozilla... ma si basa su javascript, quindi se ci fosse un browser senza js (esempio links) posso guardare solo la prima pagina, perché tutte le altre non verranno mai caricate.
Esiste una soluzione migliore che crei un menu unico visualizzabile su tutte le pagine senza usare javascript e senza usare neanche le frame? (ovviamente tutta programmazione lato client)
E qual è comunque il modo migliore per costruire un menu (nel senso dell'accessibilità e della facilità ad apportare modifiche)?
grazie

(spero di essere stato abbastanza chiaro)
Re: menu multibrowser
Inviato: giovedì 4 ottobre 2007, 23:13
da Giooogle.tk
Beh se il problema è solo quello di inserirlo in tutte le pagine senza doverlo scrivere in tutte le pagine puoi risolvere con php (attento il tuo server deve supportare il php)
metti
e nel file menu.php scrivi il tuo menu, ad esempio:
voce1
voce2
intendevi una cosa così?
edit: ho letto ora che vuoi solo programmazione lato client... come non detto

Re: menu multibrowser
Inviato: giovedì 4 ottobre 2007, 23:17
da simo_magic
hai provato ad usare i css?
Re: menu multibrowser
Inviato: venerdì 5 ottobre 2007, 10:37
da daemon_nio
@Giooogle.tk:
sì infatti... non volevo usare né php né asp né jsp, e non volevo scrivere una pagina con frame.
Credo che però sia impossibile...
penso che la cosa migliore sia per siti piccoli replicare il menu su tutte le pagine e se proprio bisogna modificare il menu lo si fa tante volte quante sono le pagine (tanto se è piccolo sono poche), mentre credo che per siti medio grandi la soluzione migliore sia proprio la tua... usare un linguaggio di programmazione lato server
@simo_magic:
ma i css non servono solo per definire uno stile e non il contenuto?
Quindi servono per rendere il mio menu più carino e non per riempirlo.
grazie comunque per i consigli, se ve ne vengono in mente altri aggiungeteli.
P.S.
Altra curiosità... ma poi perché utilizzare ajax per includere un testo?
Io ho sempre fatto una cosa del genere:
Codice: Seleziona tutto
<body>
...
<div><script type="Javascript" src="mioScript.js"></script></div>
...
</body>
e poi scrivere un file a parte chiamato mioScript.js:
quindi il tutto senza usare l'oggetto XMLHttpRequest di Mozilla oppure ActiveXObject di Internet Explorer?
Non è molto più semplice e più accessibile come ho mostrato sopra?
In fondo basta che il browser parli javaScript il codice dovrebbe funzionare, e il metodo document.write() lo conoscono tutti.
Oppure ignoro qualche cosa teorica?
Per quanto riguarda utilizzare Ajax per leggere i file XML non esprimo ancora un parere perché non ho letto nulla a riguardo (lo farò al più presto

).
Re: menu multibrowser
Inviato: venerdì 5 ottobre 2007, 12:55
da daemon_nio
Forse ho capito il mio errore.
Io utilizzavo lo script esattamente così:
Codice: Seleziona tutto
...
<body>
<table>
<tr>
<td>logo</td>
<td>titolo</td>
</tr>
<tr>
<td><script src="menuScript.js"></script></td>
<td>testo della pagina.html</td>
</tr>
<table>
dove tutte le pagine avevano un codice del genere e in ogni pagina caricavo lo script che con document.write() creava il mio menu laterale.
Ciò funziona sui browser normali ma non su quelli che non utilizzano js (come links).
Mentre l'inclusione fatta con ajax include una pagina con del contenuto testuale in un'altra, e non una pagina importante come quella di un menù che ha tanti link.
Così se un browser non ha attivo js può semplicemente inserire un link alla pagina da includere e leggerla comunque casomai come se fosse un .txt
Nel mio caso un browser testuale non leggerebbe mai il menu e non potrebbe mai girare il sito web.
Ricordo che gli spider (usati dai motori di ricerca per indicizzare un sito) funzionano molto simili ai browser testuali (quindi non conoscono javascript né tantomeno applet o flash), quindi se mi sto accanendo (e vi sto assillando) a capire come si faccia un sito leggibile da un browser testuale, vi chiedo di scusarmi
grazie!
Quindi se siete d'accordo con me la soluzione al problema credo sia questa.
Siti piccolo scritti in puro HTML, e i javascript deve servire solo ad abbellire,
Siti più grossi con menu programmati lato server.
Re: menu multibrowser
Inviato: venerdì 5 ottobre 2007, 13:29
da simo_magic
ma con il css in combinazione al puro xhtml puoi fare un bel menu
http://tutorials.alsacreations.com/deroulant/
ad esempio
Re: menu multibrowser
Inviato: venerdì 5 ottobre 2007, 21:56
da daemon_nio
ehm il link è carino... ma non è proprio tutto esatto.
Il menu (tranne qualche problemuccio) è crossbrowser, anche se il codice si potrebbe migliorare (almeno per quanto ho letto sembrerebbe che si può prendere qualche accorgimento in più).
Il menu è sicuramente scritto bene; ossia nel caso in cui non sia attivo javascript, il menu viene visualizzato per intero dal browser e quindi tutti i link sono lo stesso accessibili.
Non so se hai letto tutto il codice, ma è sempre il javascript motore di tutto, i css non fanno altro che aggiungere dei colori, spostarlo in posizioni stabilite, e aggiungere effetti di visualizzazione più carini al passaggio del mouse.
Ma il problema è sempre lo stesso.
Come mettere questo codice in tante pagine?
Beh si può fare un copia incolla su ogni pagina di tutto il blocco div (e casomai scrivere le funzioni e lo stile una volta sola e caricarli dinamicamente) ma con il solito problema... se per qualche motivo devi cambiare il menu ti ritrovi a dover apportare le modifiche non su di un'unica pagina, ma su tantissime pagine, (in pratica su ogni pagina del tuo sito).
In fondo il menu non è scritto in css, il menu è scritto in html (è il blocco div), il css può solo abbellire.
Quindi non è la soluzione al problema.
Infine confermo ancora la mia frase detta già sopra: "Siti piccolo scritti in puro HTML, e i javascript deve servire solo ad abbellire"
Re: menu multibrowser
Inviato: venerdì 5 ottobre 2007, 22:01
da simo_magic
se vuoi usare il javascript puoi includere dinamicamente alcuni pezzi...però per me è molto meglio un import in php...veloce e facile
