Visualizzazione dei risultati da 1 a 7 su 7

Discussione: aiuto reindirizzamento

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    5

    aiuto reindirizzamento

    Buongiorno a tutti,
    volevo chiedervi una mano.
    Ho un sito, con un template praticamente quasi completo.
    Unico problema ho un immagine che non si adatta ai vari dispositivi.
    A questo punto ho optato ad indirizzare ,a seconda della larghezza dello schermo, l'utente alla pagina "giusta".
    Ho visto in giro e quello che sembra piu' adatto a me e' il seguente:

    codice:
    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth < 400) {
      window.location="http://www.miosito.it/m.index.html"    
    }
    if (screenwidth < 800) {
      window.location="http://www.miosito.it/t.index.html"    
    }else{
      window.location="http://www.miosito.it/index.html"    
    }  
    </script>
    i valori 400 e 800 sono indicativi volevo fare 3/4 pagine a seconda della larghezza, oppure a intervalli meno di 350 tra 351 e 400, tra 401 e 600, da 601 a 800 e da 801 a 1200.
    Ma quando inserisco i codici nelle altre pagine, va come in loop e aggiorna sempre.
    Dove sbaglio?
    grazie mille x le risposte.

  2. #2
    Premetto che i redirect con javascript sono penalizzanti in ottica SEO.
    Inoltre, creare n versioni di ogni pagina massimizza la fatica e minimizza i risultati, in quanto potresti non tener conto di eventuali risoluzioni intermedie, dovresti gestire anche i ridimensionamenti della finestra e comunque non è una best practice.
    Se vuoi un sito che si adatti a tutte le risoluzioni dovresti renderlo responsivo usando le media queries.

    Fatte le dovute premesse,
    lo script così com'è, se messo su tutte le pagine va in loop perché un redirect verrà comunque eseguito, indipendentemente dalla risoluzione.

    Se deciderai di adottare comunque questa soluzione, per evitare il loop, dovrai mettere il redirect giusto nella pagina giusta.

    Nella index.html dovrai verificare che la risoluzione non sia minore di (nel preciso ordine) 400 o 800
    codice:
    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth < 400) {
      window.location="http://www.miosito.it/m.index.html"    
    }
    if (screenwidth < 800) {
      window.location="http://www.miosito.it/t.index.html"    
    }
    
    </script>
    Nella t.index.html dovrai verificare che la risoluzione non sia minore di 400 o maggiore di 800
    codice:
    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth < 400) {
      window.location="http://www.miosito.it/m.index.html"    
    }
    if (screenwidth > 800) {
      window.location="http://www.miosito.it/index.html"    
    }
    </script>

    Infine nella s.index dovrai verificare che la risoluzione non sia maggiore (sempre nel preciso ordine, per evitare un doppio redirect) di 400 o 800:
    codice:
    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth > 800) {
      window.location="http://www.miosito.it/index.html"    
    }
    if (screenwidth > 400) {
      window.location="http://www.miosito.it/t.index.html"    
    }
    </script>






    Se hai una sola immagine che non si adatta alle varie risoluzioni, puoi utilizzare js, in maniera analoga a quanto hai fatto per il redirect, per servire al client la giusta immagine:

    codice:
    <script type="text/javascript">
    if(typeof window.orientation!=='undefined'){ 
        //tablet e smartphones
        document.write('<img src="image-for-mobile.jpg" alt="Versione per mobile">');
    }else{
        document.write('<img src="image-for-desktop.jpg" alt="Versione per Desktop">');
    }
    </script>
    Note:
    1) Questo script va messo "al posto" del normale tag <img /> in quanto usa document.write e posizionerà l'immagine esattamente dove è posizionato lo script.

    2) Per la scelta dell'immagine non utilizza le dimensioni della finestra ma verifica solo se siamo su un dispositivo mobile o su un desktop. Se vuoi controllare tre o più risoluzioni lo script diventa:
    codice:
    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth < 400) {
      document.write('<img src="image-for-smartphones.jpg" alt="Versione per mobile">');   
    }
    if (screenwidth < 800) {
      document.write('<img src="image-for-tablets.jpg" alt="Versione per mobile">');    
    }else{
      document.write('<img src="image-for-desktop.jpg" alt="Versione per desktop">');    
    }  
    </script>

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    5
    grazie mille per le risposte, domani provo a fare come mi hai detto tu, provo a indirizzare la sola immagine e ti aggiorno sul funzionamento.
    grazie mille ancora.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    5
    aggiornamento....
    immagine desktop ok
    immagine tablet ok
    immagine mobile mi fa uscire l'immagine x mobile e sotto quella tablet...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    5
    risolto con un else if.

    ma se volessi implementare altri 2 valori esempio 600 e 100 devo usare sempre gli else if oppure esistono dei range per farli entrare entrare tra 2 valori. Mi spiego meglio esiste una funzione dove se il valore e' tra 600 e 800 mi inserisce l' immagine 600-800.jpg ?

    grazie ancora x le info!

  6. #6
    Se vuoi impostare dei ranges devi usare sempre il costrutto if, abbinato all'operatore logico "and".
    codice:
    if(width>400 && width<800){
        //risoluzione tra 400 e 800 px
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    5
    Giusto... grazie mille!!!
    cmq il mio script sembra non funzioni, mi spiego meglio col cellulare in landscape legge sempre la risoluzione alta, anche sul tablet. sembra che legga le dimensioni in modo errato.


    <script type="text/javascript">var screenwidth = screen.width;
    if (screenwidth < 320) {
    window.location="http://www.miosito.it/web/m.php"
    }
    else if (screenwidth > 321 && screenwidth < 480) {
    window.location="http://www.miosito.it/web/m1.php"
    }


    else if (screenwidth > 481 && screenwidth < 600) {
    window.location="http://www.miosito.it/web/t.php"
    }
    else if (screenwidth > 601 && screenwidth < 768) {
    window.location="http://www.miosito.it/web/t1.php"
    }


    else if (screenwidth < 1024) {
    window.location="http://www.miosito.it/web/ok.php"
    }


    </script>
    l'idea e' di fare i brack point a seconda di come si mette il cellulare o il tablet.

Tag per questa discussione

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.