Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    link in html richiamati da un file esterno

    Salve a tutti ragazzi, ho una domanda da farvi...ho alcuni banner (inseriti in semplici tabelle html) e vorrei gestire i loro links da un file esterno (xml, txt, o simile), cioè al banner 1 dovrebbe corispondere un determinato link e via di seguito...è possibile? se si come posso fare e/o dove potrei vedere per documentarmi meglio?
    Ciao e grazie!

  2. #2
    ...ragazzi non c'è nessuno che potrebbe consigliarmi qualche soluzione?

  3. #3
    ...non riesco a trovare nulla nemmeno su google

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    a grandi linee

    1) ti crei un un file javascript che contiene una struttura object literal

    var urls = {
    "id1" : "http://...",
    "id2" : "http://...",
    "id3" : "http://...",
    ...
    }


    2) Carichi il javascript in questione nella tua pagina

    3) Assegni un id a ciascun link, come quelli dell'oggetto (id1, id2, id3...)

    4) al domload fai partire una funzione che raccoglie i link contenuti nella tabella e per ciascun link
    a - ne legge l'id (id = <elemento>.id) e
    b - associa il relativo link impostato nell'oggetto (<elemento>.href = urls[id])


    Fine
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    tradotto in codice

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <title>Link dinamici</title>
    
            <script type="text/javascript">
            // <![CDATA[
    
            /* metti questa struttura in un file esterno */
            var urls = {
                "link01"    : "http://www.address1.com/",
                "link02"    : "http://www.address2.com/",
                "link03"    : "http://www.address3.com/"   /* <-- l'ultimo elemento SENZA virgola */
            };
    
            function leggiBannerLinks() {
    
                /* limita la ricerca di link ad un'area e non al documento intero */
                var bannerLinks = document.getElementById('area_con_link_dinamici').getElementsByTagName('a');
                var i           = bannerLinks.length;
    
                while (i--) {
                    var id = bannerLinks[i].id || '';
                    if (typeof urls[id] !== "undefined") {
                        bannerLinks[i].href = urls[id];
                    }
                }
    
            }
    
    		window.onload = leggiBannerLinks; /* chiamata alla funzione */
    
            // ]]>
            </script>
        </head>
    
    <body>
    
        <div id="area_con_link_dinamici">
            Link 1
            Link 2
            Link 3
        </div>
    </body>
    </html>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    ...grazie mille!

  7. #7
    Scusami " fcaldera", una domanda, ma se volessi aggiungere un altro div? mi spiegho a me sono 6 banner, 3 in alto (messi in orizzontale) e 3 sulla colonna di sinistra (messi in verticale) quindi dev per forza aggiungere un altro div, solo che o mi funziona uno o l'altro, entrabi non riesco a farli funzionare...in pratica, a come ho capito, la parte interessata dello script è la seguente:

    codice:
    var bannerLinks = document.getElementById('area_con_link_dinamici').getElementsByTagName('a');
    ...se io ad esempio volessi aggiunere un'altra area che si chiami "area_con_link_dinamici_2" come posso modificare? ..ovviamente poi occorre pure aggiungere nello script esterno, ma questo ho capito come farlo...

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    cerca un div che li racchiuda tutti e 6 e usa quello

    oppure scrivi direttamente
    var bannerLinks = document.getElementsByTagName('a');


    oppure, meglio ancora, modifica il codice così

    codice:
    function leggiBannerLinks(id) {
    
                /* limita la ricerca di link ad un'area e non al documento intero */
                var bannerLinks = document.getElementById(id).getElementsByTagName('a');
                var i           = bannerLinks.length;
    
                while (i--) {
                    var id = bannerLinks[i].id || '';
                    if (typeof urls[id] !== "undefined") {
                        bannerLinks[i].href = urls[id];
                    }
                }
    
            }
    
    	window.onload = function() {
                  leggiBannerLinks('div_alto'); /* chiamata alla funzione */
                  leggiBannerLinks('div_basso'); /* chiamata alla funzione */
            }
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #9
    ...perfetto, ora è ottimo!
    Grazie mille per la disponibilità e la tempestività

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.