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

    script non funziona in HTML

    Salve a tutti,
    premesso che sono proprio novizio, dopo una settimana di varie ricerche sono riuscito a mettere insieme il seguente codice che ordina un array di tre campi in base alla data, eliminando le date più vecchie di quella odierna.
    Il codice funziona, testato su una pagina "try editor", ma appena lo inserisco all'interno dell'HTML allora non fa più niente (è un po' sporchino perché sono remmate ancora alcune istruz di controllo), come se non lo interpretasse...
    Credo sia perché non sia inserito al posto giusto, io l'ho messo all'interno degli <head>.
    (già lette le indicazioni su come richiamare il codice)
    Qualche consiglio?
    Grazie

    Qui il codicione:

    <script type="text/javascript" language="JavaScript">
    function lz(numero, cifre) {
    n = String(numero);
    while (n.length<cifre) {
    n="0"+n
    }
    return n;
    }
    function dateFormat(data, formato) {
    // (c) br1 - 2002

    var giorni = new Array("Domenica","Lunedì","Martedì","Mercoledì","G iovedì","Venerdì","Sabato");
    var mesi = new Array("Gennaio","Febbraio","marzo","Aprile","Maggi o","Giugno","Luglio","Agosto","Settembre","Ottobre ","Novembre","Dicembre");

    // preparo la data... verificare di passarla corretta!
    var adesso = new Date(data);
    var anno = adesso.getFullYear();
    var mese = adesso.getMonth()+1;
    var giorno = adesso.getDate();
    var settim = adesso.getDay()
    var ore = adesso.getHours()
    var minuti = adesso.getMinutes()
    var secondi = adesso.getSeconds()

    // preparo la stringa di risposta
    var rVal = '';

    if (formato.length==0) {
    // assenza del secondo parametro
    return String(adesso);
    } else {

    // inizio loop
    while (formato.length>0) {

    // verifico se c'e' qualche separatore e lo aggiungo
    while (formato.length>0 && String("ymdphnst").indexOf(formato.charAt(0).toLow erCase())<0) {
    rVal += formato.charAt(0);
    formato = formato.substr(1);
    }

    // Separo il gruppo
    if (formato.length>0) {
    ff = formato.charAt(0);
    formato = formato.substr(1);
    while (formato.length>0 && formato.charAt(0).toLowerCase()==ff.charAt(0).toLo werCase()) {
    ff += formato.charAt(0);
    formato = formato.substr(1);
    }

    // espando il formato nella stringa corrispondente
    ff = ff.toLowerCase(); // operazione preliminare... tutto in minuscolo
    switch (ff) {
    case "yy" :
    rVal += String(anno).substr(2);
    break;
    case "yyyy" :
    rVal += String(anno);
    break;
    case "m" :
    rVal += String(mese);
    break;
    case "mm" :
    rVal += lz(mese,2);
    break;
    case "mmm" :
    rVal += mesi[mese-1].substr(0,3);
    break;
    case "mmmm" :
    rVal += mesi[mese-1];
    break;
    case "d" :
    rVal += String(giorno);
    break;
    case "dd" :
    rVal += lz(giorno,2);
    break;
    case "ddd" :
    rVal += giorni[settim].substr(0,3);
    break;
    case "dddd" :
    rVal += giorni[settim];
    break;
    case "p" :
    var inizio = new Date(anno, 0, 0);
    rVal += Math.floor((adesso - inizio) / 86400000);
    break;
    case "ppp" :
    var inizio = new Date(anno, 0, 0);
    rVal += lz(Math.floor((adesso - inizio) / 86400000),3);
    break;
    case "h" :
    rVal += String(ore);
    break;
    case "hh" :
    rVal += lz(ore,2);
    break;
    case "n" :
    rVal += String(minuti);
    break;
    case "nn" :
    rVal += lz(minuti,2);
    break;
    case "s" :
    rVal += String(secondi);
    break;
    case "ss" :
    rVal += lz(secondi,2);
    break;
    case "t" :
    rVal += lz(ore,2)+":"+lz(minuti,2)+":"+lz(secondi,2);
    break;
    default : // il numero dei caratteri del formato non e' permesso
    rVal += ff.replace(/./gi,"?");
    }

    }

    } // fine loop principale

    return rVal;
    }
    }

    x=0;
    q=0;
    var doggiymd;
    var dnewsymd;

    oggi = new Date();

    var news = new Array();

    news[0]=new Array("2010/04/12","www.linklinklink1.it/","Testotestotesto1");
    news[1]=new Array("2010/05/25","www.linklinklink2.it/","Testotestotesto2");
    news[2]=new Array("2010/05/21","www.linklinklink3.it/","Testotestotesto3");
    news[3]=new Array("2012/12/23","www.linklinklink4.it/","Testotestotesto4");
    news[4]=new Array("2010/04/24","www.linklinklink5.it/","Testotestotesto5");
    news[4]=new Array("2010/06/12","www.linklinklink6.it/","Testotestotesto6");
    news[4]=new Array("2010/03/21","www.linklinklink7.it/","Testotestotesto7");


    news.sort();
    doggiymd=dateFormat(oggi, 'yyyymmdd');
    // document.write(doggiymd + "
    ");

    while (q< news.length){
    dnewsymd=dateFormat(news[q][0], 'yyyymmdd')
    // document.write(dnewsymd + "
    ");

    if (dnewsymd < doggiymd) {
    news.shift()
    }
    q++;
    }

    news.sort().reverse();
    var pausecontent2=new Array()
    while (x< news.length){

    pausecontent2[x]=("" + news[x][2] + "");

    document.write(pausecontent2[x]);

    // document.write("" + news[x][2] + "")

    // document.write(news[x][0] + "
    ")
    x++;
    }
    document.write(pausecontent2);
    </script>

  2. #2
    guarda che non puoi mettere nella head del codice che utilizza document.write(), devi metterlo nel body della pagina nella posizione dove vuoi far uscire i link.
    I DON'T Double Click!

  3. #3

    script non funziona in HTML

    Originariamente inviato da artorius
    guarda che non puoi mettere nella head del codice che utilizza document.write(), devi metterlo nel body della pagina nella posizione dove vuoi far uscire i link.
    Nel <body> ovviamente non funziona, quindi quel document.write() servirebbe per testare;
    dove/come allora posso inserire una qualche istruzione che mi dica che fino a lì funzioni?

    Grazie

  4. #4

    script non funziona in HTML

    Originariamente inviato da artorius
    guarda che non puoi mettere nella head del codice che utilizza document.write(), devi metterlo nel body della pagina nella posizione dove vuoi far uscire i link.

    vediamo se ho capito:
    non è che non posso metterlo in <head>, se lo metto lì mi visualizza il contenuto di pausecontent2 e la formattazione della pag va a farsi benedire;

    Ora, dal momento che si tratta di un controllo temporaneo che poi ovviamente toglierei, allora l'ho messo lì.
    Il punto è che non dà segni di vita, non "sformatta tutta la pagina" facendomi vedere se in quel punto pausecontent2 ha un valore e quale, quindi non lo legge, non lo interpreta per il verso giusto o che so io...

    Quindi dove/come posso mettere un controllo (che poi toglierei) per capire fin dove funziona?
    Lo script che viene richiamato nel <body> non esegue niente.

  5. #5
    Scusate,

    nel fare l'esempio del contenuto dell'Array news (dichiarazione), l'indice è ripetuto.
    ma non è quello che non va...

    In ogni caso il contenuto corretto è:

    news[0]=new Array("2010/04/12","www.linklinklink1.it/","Testotestotesto1");
    news[1]=new Array("2010/05/25","www.linklinklink2.it/","Testotestotesto2");
    news[2]=new Array("2010/05/21","www.linklinklink3.it/","Testotestotesto3");
    news[3]=new Array("2012/12/23","www.linklinklink4.it/","Testotestotesto4");
    news[4]=new Array("2010/04/24","www.linklinklink5.it/","Testotestotesto5");
    news[5]=new Array("2010/06/12","www.linklinklink6.it/","Testotestotesto6");
    news[6]=new Array("2010/03/21","www.linklinklink7.it/","Testotestotesto7");

    Grazie a chiunque vuole aiutarmi, sono sicuro che per chi conosce javascript sarà una stupidata.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.