Problema di reindirizzo con javascript e ajax

di il
10 risposte

Problema di reindirizzo con javascript e ajax

Ciao a tutti, sono nuova, appena iscritta e cgià pongo un problema...
ho trovato un cms che invece dei vecchi frame utilizza una combinazione di javascript e ajax che ho trovato interessante e dopo attenta lettura sono riuscita a comprenderlo e addattarlo ai mei scopi. il problemi si è presntato quando ho creato la pagine index per il reindirizzo alla home page a seconda della lingua del server dell'utente (il sito sarà in quattro lingue). il reindirzzo va alla home ( e fin qui no problem) che è il contenitore vuoto con solo il menu è una gallery in cui si deve caricare anche la pagina di presentazione ( e qui sta il probelma). il collegamento di reindirizzo (es italiano) dovrebbe essere questo:


if (navigator.userLanguage) {theAgent = navigator.userLanguage;}
else {theAgent = navigator.language;}
if (theAgent.indexOf('it') != -1) {location.href = "nomesito.it/home.html"}


questo per andare alla pagina ovviamente ma a questa istuzione devo collegare l'istruzione seguente per caricare la pagina di presentazione altrimenti la home page si presenta vuota:

javascript:ajaxpage('presentazione.html', 'leftcolumn')

ho provato a collegarla tramite il simbolo "?" e anche "&" ma non funziona.....forse com ":"??????
mi aiutate?????
intanto io continuo le mie prove...ma non disdegno aiuti dal forum...grazie!!!!!

10 Risposte

  • Re: Problema di reindirizzo con javascript e ajax

    Ciao

    Se devo essere sincero non ho capito molto molto bene. Praticamente te hai una pagina suddivisa in "blocchi" diciamo. Un blocco fisso, che è quella parte che riesci a caricare, e un blocco variabile, e cioè quella parte che non ti si carica... Giusto?

    Mi posti com'è formata la pagina a livello html? Forse ho la soluzione, ma devo prima capire se ho capito giusto, e quindi è applicabile la soluzione che ho in mente
  • Re: Problema di reindirizzo con javascript e ajax

    La pagina è divisa in due blocchi, si:
    una, quello di destra, dove c'è un menù e una gallery
    e quello di sinistra vuoto, dove si caricano le differenti pagine.
    Stanotte poi ci ho rifletturo (nel sonno ho le idee migliori!!!!)
    la soluzione che mi è venuta in mente e che forse sarebbe meglio:
    è possibile per il blocco di sinistra (che resta di nascita vuoto perchè deve accogliere le pagine) creare uno script che gli dica che se vuoto(cioè che non ci sia una pagina richamata già dal menù) di default carichi la pagina di presentazione.html?
    In questo modo posso creare una pagina di index normale con le icone delle differenti lingue che portano a home page differenti tradotte anche nei menu senza usare il reindirizzo automatico e nel menù eventualmente posso far ritornare anche l'utente alla scelta delle lingue . Grazie per tutto l'aiuto che potete darmi...
  • Re: Problema di reindirizzo con javascript e ajax

    Ciao

    è la soluzione che adotto io. Premetto che mi faccio aiutare da jQuery, ottimo framwork che ti aiuta su molte operazioni, ajax incluso.

    Al caricamento della pagina controlli si il menu è vuoto. Se questo è vuoto puoi caricarti la pagina di defualt. Per le pagine da caricare potresti crearti dei file preposti (con solo il codice che va incluso nel div relativo) e, tramite la funzione jQuery("#div").load() caricarti il file che ti serve.

    Devi fare attenzione di svuotare ogni volta il div in fase di nuovo caricamento pagina (se intendi fare tutto tramite javascript, senza reload). Ti mostro un esempio esplicativo.
    
    
    jQuery(document).ready(function(){
    
       if (jQuery("#div").html.length == 0){
          caricaMenu(presentazione");
       }
    });
    
    caricaMenu = function(pagina){
       jQuery("#div").html = ""; // Svuoto il div contenitore
    
       jQuery("#div").load([percorso + ]pagina + "html"); // carico il codice html della pagina interessata. [percorso] è relativo al percorso in cui si trova la pagina da caricare. #div è l'id del contenitore per il menu
    }
    
    
  • Re: Problema di reindirizzo con javascript e ajax

    Ciao...allora se ho ben capito al posto di #div metto #leftcolumn (così viene indicato il blocco sinistra che rimane vuoto), poi scendo fine alla query del percorso dove indico
    jQuery("#leftcolumn").load(cartella/presentazione + "html");
    togliendo il + e le virgolette
    e quando dalla pagina index arrivo alla home page della lingua es. inglese, in automatico sul blocco vuoto a sinistra viene caricata la pagina di presentazione...
    che sparisce quando dal menù scelgo le altre pagine?

    e questa query la inserisco in quello spazio del blocco sinistro della home page in cui dovrebbe venire caricata la pagina o la inserisco come script prima del body sempre nella hoem page...o dove??????
  • Re: Problema di reindirizzo con javascript e ajax

    Questo è il codice della home page (italiana)
    ///<head></head>
    <body> // [color=#FF0000]questo è il blocco di sinistra, quello che rimane vuoto e in cui deve apparire la pagina quando si è indirizzati dalla'index della lingua[/color]
    
    <table width="980" border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td class="logoleft"></td>
            <td class="logo">NOME sitp</td>
            <td class="logoright"></td>
            <td class="tag">Descrizione sito</td>
            </tr>
        </table></td>
      </tr>
      <tr>
        <td height="10"></td>
      </tr>
      <tr>
        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td valign="top">
            <table width="99%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="7"><img src="images/main1.jpg" alt="sfondo" width="7" height="8" /></td>                    
              </tr>
              <tr>
                <td class="main"></td>
               <td id="leftcolumn" valign="top" class="main" ></td>
                <td class="main"></td>
              </tr>
              <tr>
                <td ><img src="images/main3.jpg" alt="sfondo" width="7" height="8" /></td>
                <td class="main">
    
    //[color=#FF0000]in questo spazio appare poi la pagina caricata[/color]
                                      
                </td>
                <td><img src="images/main4.jpg" alt="sfondo" width="7" height="8" /></td>
              </tr>
            </table></td>
    
    //[color=#FF0000]da qui comincia il blocco a destra[/color]
    
            <td width="126" valign="top"><table width="99%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="7"><img src="images/main1.jpg" alt="sfondo" width="7" height="8" /></td>
                <td class="main">&nbsp;</td>
                <td width="7"><img src="images/main2.jpg" alt="sfondo" width="7" height="8" /></td>
              </tr>
              <tr>
                <td class="main"></td>
                <td valign="top" class="main"><table cellspacing="0" cellpadding="0">
                  <tr>
                    <td class="sidelinks"><table align="center" border="0" cellpadding="0" cellspacing="0" width="200">
                      <tbody id="rightcolumn">
                        <tr>
                          <td><img src="images/main2.jpg" width="30" height="10" /><a href="javascript:ajaxpage('chi.html', 'leftcolumn');">Chi Sono</a></td><td><img src="images/main2.jpg" width="30" height="10" />
                          </td><td><a href="javascript:ajaxpage('romagna.html', 'leftcolumn');">Romagna</a></td></tr>
                          <tr><td colspan="2"><img src="images/transparent.gif" width="100" height="10"/></td></tr>
                          <tr>                     
                            <td><img src="images/main2.jpg" width="30" height="10" /><a href="javascript:ajaxpage('ravenna.html', 'leftcolumn');">Ravenna</a></td><td><img src="images/main2.jpg" width="30" height="10" /></td><td><a href="javascript:ajaxpage('faenza.html', 'leftcolumn');">Faenza</a></td>
                          </tr>
                          <tr><td colspan="2"><img src="images/transparent.gif" width="100" height="10"/></td></tr>
                          <tr>
                            <td><img src="images/main2.jpg" width="30" height="10" /><a href="javascript:ajaxpage('A71Mail/a71mail.php', 'leftcolumn');">Contatti</a></td><td><img src="images/main2.jpg" width="30" height="10" /></td><td><a href="javascript:ajaxpage('amici.html', 'leftcolumn');">Siti amici</a></td>
                          </tr>
                          <tr><td colspan="2"><img src="images/transparent.gif" width="100" height="10"/></td></tr>
                          <tr>
                            <td colspan="2" align="right"><img src="images/main2.jpg" width="30" height="10" /><a href="javascript:ajaxpage('presentazione.html', 'leftcolumn');">Home</a></td>
                          </tr>
                        </tbody>
                    </table></td>
                  </tr>
                  <tr>
                    <td height="46" valign="top"></td>
                  </tr>
                  <tr>
                  <td>
    			  <style>
    				.messagestyle{
    					font-family:Arial;
    					font-size:12px;
    					color:white;
    					background-color:#888888;
    					text-align:center;
    					position:absolute;
    					bottom:0px;
    					vertical-align:middle;
    					margin:0px;
    					line-height:16px;
    					height:18px;
    				}
    				
    				</style>
    				</td>
                <td class="main"></td>
              </tr>
    
            </table></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td height="42" width="8"><img src="images/bottom_left.gif" alt="Blue World" /></td>
            <td class="main" align="center"><b>ANTONIOLI LUCIANA - Guida Turistica, Accompagnatrice Turistica e Interprete<b></td><td class="main" align="right"><a href="http://#/" title="Webmaster Stefana">Webmaster <b>Stefana Ugolini</b></a>
            </td>
            <td height="42" width="8"><img src="images/bottom_right.gif" alt="sfondo" /></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>
  • Re: Problema di reindirizzo con javascript e ajax

    Il codice javascript è consono inserirlo o nell'head o in un file js che poi andrà caricato nella pagina, sempre nell'head, tramite l'istruzione
    
    <script type="javascript" src="sorgente_js"></script>
    
    jQuery("#leftcolumn").load(cartella/presentazione + "html");
    Questo diventa
    jQuery("#leftcolumn").load("cartella/" + pagina + ".html"); 
    all'interno dei tag head inserisci:
    
    <script type javascript>
    jQuery(document).ready(function(){
    if(jQuery("#leftcolumn").html.length == 0){
    caricaMenu(presentazione");
    }
    });
    </script>
    
    Questo codice viene caricato non appena la pagina è stata completamente caricata, cioè quando il DOM è pronto.

  • Re: Problema di reindirizzo con javascript e ajax

    Ciao...seguite tutte le istruzioni...e ti ringrazio per la santissima pazienza che dimostri....con le teste dure come la mia......ma ancora non funziona...mi sa che però la colpa è mia cha non ho dato le indicazioni chiare...sono sì due blocchi ma non divisi in div, sono divisi in <table> e 'leftcolumn' è l'Id del <td> dove dovrebbe apparire la pagine presentazione che per ora nn appare....fa qualche differenza????
  • Re: Problema di reindirizzo con javascript e ajax

    Non fa differenza a livello javascript, ma html... la pagina che andrai ad includere dovrà ovviamente essere compatibile con l'html del contenitore. anche se, cmq, se inserisci un div dentro una colonna questa è comunque visibile. Sicura che il blocco che vai ad includere vi sia solo l'html, escluso i tag

    <html><head><body>?
  • Re: Problema di reindirizzo con javascript e ajax

    P.s. stavo navigando nel siti vari di chi usa Jquery... e ho visto che tutti dicono di scaricare prima il codice jquery, non è che lo devo fare e creare un file js e allegarlo con uno script per fare funzionare il tutto????


    la pagina 'presentazione' non ha problemi perchè se la carico dal link del menu appare normalmente....e il file home.html funziona normalmente.....
    ora provo a inserire lo script direttamente nel file home invece che come file esterno js
     // jQuery("#leftcolumn").load("italia/" + presentazione + ".html"); 
    prima del 
     jQuery che richiama il caricamento della pagina
    // jQuery(document).ready(function(){
        if(jQuery("#leftcolumn").html.length == 0){
        caricaMenu("presentazione");
        }
        });
    
    però nelle prime istruzioni mi avevi anche detto che dovevo assicurarmi di svuotare sempre il contenitore ma se aggiungo questa istruzione mi dà errore di sintassi
    caricaMenu = function(pagina){
           jQuery("#leftcolumn").html = "";
    trovato errore mancava la parentisi di chiusura...
    
    il tutto e praticamente così:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>.:nome sito:.</title>
    <meta name="keywords" content="" />
    <meta name="description" content="; " />
    <link href="../css/unostyle.css" rel="stylesheet" type="text/css" />
    <script src="../js/contenuto.js" type="text/javascript"></script>
        <script>
    	caricaMenu = function(pagina){
        jQuery("#leftcolumn").html = "";
    	 };
    	jQuery("#leftcolumn").load("italia/" + presentazione + ".html"); 
    	jQuery(document).ready(function(){
        if(jQuery("#leftcolumn").html.length == 0){
        caricaMenu("presentazione");
        }
        });
    	
        </script>
    </head>
    
    <body>
  • Re: Problema di reindirizzo con javascript e ajax

    p.s. stavo navigando nel siti vari di chi usa Jquery... e ho visto che tutti dicono di scaricare prima il codice jquery, non è che lo devo fare e creare un file js e allegarlo con uno script per fare funzionare il tutto????
    e sìsì, per poter utilizzare le varie librerie bisogna poterle includere nella propria pagina... mi sembrava di avertelo detto, se non l'ho fatto chiedo perdono
Devi accedere o registrarti per scrivere nel forum
10 risposte