-
alternativa ai frame
ciao atutti, volevo sapere se esiste un alternativa ai frames che mi permetta, avendo un elenco di link sulla sinistra, di caricare a destra una pagina diversa di volta in volta.
preferisco evitare i frames perchè ne ho già troppi e poi vorrei qualcosa di più "dinamico" magari sarebbe ottimo se ogni link caricasse dall'altra parte solo il testo preso semmai da un file txt e non l'intera pagina.
credo se en guadagnerebbe il leggerezza.
ditemi che si può fare
-
Ciao, quello che dici tu si potrebbe anche fare, ma devi scomodare gli ActiveXObject che hanno due notevoli svantaggi:
- primo, sono supportati solo da Internet Explorer
- secondo, sono considerati come parecchio invasivi per il sistema
Forse la cosa migliore, se non vuoi usare i frame, è quella di creare le pagine con un layout che comprenda i link sulla sua parte sinistra (meglio ancora, affida ad uno script il compito di scriverli, così in caso di modifiche devi intervenire soltanto sullo script e non su tutte le pagine, trovi dettagli in proposito su questo thread: http://forum.altervista.org/showthread.php?t=42856).
Stammi bene...
-
ok, posso usare il java per il codice del menu con i link, ma come faccio a far caricare ad ogni link un testo diverso anzichè tutta la pagina?
-
Spero di aver capito bene quello che intendi fare: posso consigliarti questo metodo, ma non sono sicuro della compatibilità tra browser...
La prima cosa che devi fare è predisporre un DIV che possa contenere le informazioni variabili, semplicemente così:
Codice HTML:
<DIV ID="myframe"></DIV>
Preparati a parte i vari codici HTML delle parti variabili e inseriscile in testa alla pagina nel modo seguente:
Codice HTML:
<SCRIPT LANGUAGE="JavaScript">
var testi = new Array ('**codice0**', '**codice1**', '**codice2**', ...)
function carica (nrTesto)
{
document.getElementByID ("myframe").innerHTML = testi[nrTesto]
}
</SCRIPT>
Ricordati, prima di inserire nell'array i vari codici, di renderli compatibili con JavaScript, sostituendo tutti i caratteri ' (apice) e \ (backslash) rispettivamente con \' (backslash-apice) e \\ (doppio backslash).
Infine, su ciascun link non dovrai far altro che scrivere:
Codice HTML:
<A HREF="javascript:carica(**1)">Link</A>
dove **1 è il numero del codice che vuoi caricare, ricordati di partire da 0 con la numerazione e non da 1!
Spero di averti aiutato, stammi bene...
-
si, credo vada bene, ma, scusa l'ottusità, il testo da caricare viene salvato in un fiel a parte? come lo chiamo? sarebbe nrtesto?
-
No, le parti di codice HTML che dovranno essere scambiate volta per volta si trovano nell'array iniziale, avrai qualcosa di simile a questo:
Codice:
var testi = new Array (
'<P>Quel ramo del lago di Como, che volge a mezzogiorno,</P>',
'<P>tra due catene non interrotte di <A HREF="monti.htm">monti</A></P>',
'<P>tutto a seni e golfi, a seconda dello <B>sporgere</B> e <I>rientrare</I> di quelli,'
)
nrTesto è semplicemente il parametro che ti consente di usare la stessa funzione per caricare i diversi testi. Se tu scrivi in una qualsiasi parte della pagina (purché non sia proprio dentro il DIV variabile, altrimenti perderai i collegamenti) questo codice:
Codice HTML:
<A HREF="javascript:carica(0)">lago di Como</A>
<A HREF="javascript:carica(1)">catene di monti</A>
<A HREF="javascript:carica(2)">seni e golfi</A>
avrai esattamente la pagina che cerchi, che quando clicchi sul link ti cambierà il testo con uno di quelli che hai predefinito.
Spero di essermi spiegato... stammi bene...
-
scusa ma usare il php cn include
penso sia più facile
ti fai un layout poi il menu lo includi in una table o div da te scelti e poi nella tabella/div principale (quella dei contenuti) ci includi le pagine dei link
cià!