Visualizzazione risultati 1 fino 8 di 8

Discussione: [js] Replace di parole all'interno di una pagina

  1. #1
    Guest

    Predefinito [js] Replace di parole all'interno di una pagina

    Ho creato questo semplice script:
    Codice HTML:
    parole = new Array(
    "Uno":"1",
    "due":"2",
    "tre":"3"
    );
    i=0;
    for (s in parole) {
    document.body.innerHTML=document.body.innerHTML.replace(/s[i]/g,s[i]);
    i=i++;
    }
    ma non funziona :(

    Purtroppo con javascript ho qualche problema... chi mi aiuta a risolverlo :) ?
    Ultima modifica di comunitavirtuali : 29-12-2008 alle ore 18.44.04

  2. #2
    Guest

    Predefinito

    Qui:
    Codice PHP:
    for (s in parole) {
    non dovrebbe essere:
    Codice PHP:
    for (i=0;i<parole.length;i++) {
    ?
    EDIT:
    Ho modificato lo script così:
    Codice PHP:
    <script>
    parole = new Array(2);
    parole[0] = "uno";
    parole[1] = "due";
    parole[2] = "tre";
    for (
    i=0;i<parole.length;i++) {
    document.getElementById('div').value=document.getElementById('div').innerHTML.replace(/s[i]/g,s[i]);
    }
    </script>
    <div id="div"></div>
    Ma non va ugualmente. Qualcuno più esperto di me in javascript mi da una mano?
    Ultima modifica di gabryhacker : 29-12-2008 alle ore 15.28.23

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ci sono due errori:
    - nel ciclo s è già una chiave per accedere agli elementi dell'array, i cui valori vanno referenziati con la sintassi parole[s]
    - se devi "comporre" dinamicamente una RegExp, va usata un'altra sintassi

    In definitiva, questo dovrebbe essere il codice corretto:
    Codice:
    parole = new Array(
    "Uno":"1",
    "due":"2",
    "tre":"3"
    );
    for (var s in parole) {
    document.body.innerHTML=document.body.innerHTML.replace(new RegExp (s, "g"), parole[s]);
    }
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    Uhm... non funziona neanche così.

    Può essere che abbia sbagliato a leggere?

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Forse ti conviene fare così la sostituzione, soprattutto se il tuo problema è che viene sostituita una sola occorrenza delle parole che cerchi:
    Codice:
    document.body.innerHTML.split (new RegExp (s, "g")).join (parole[s])
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    Guest

    Predefinito

    Niente, neanche così...

    Codice HTML:
    <script type="text/javascript">
    parole = new Array (
    "Cerca":"1",
    "due":"2",
    "tre":"3"
    );
    for (var s in parole) {
    document.body.innerHTML.split (new RegExp (s, "g")).join (parole[s])}
    </script>
    <body> Cerca qualcosa, due gatti, tre porcellini </body>

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ehm... quella sopra è solo la stringa, la devi assegnare da qualche parte...

    Piuttosto temo che il problema sia un altro: scritto così, il codice verrebbe eseguito prima ancora che il codice HTML sia completamente caricato. Forse sarebbe meglio che tu inserisca tutto il codice JS in una funzione, che poi richiami attraverso il gestore onload di BODY, quando cioè la pagina sarà del tutto caricata.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    Guest

    Predefinito

    Uhm... già che sbadato
    Risolto mettendo:
    Codice HTML:
    var parole = {"Uno":"1","due":"2","tre":"3"};
    Ultima modifica di comunitavirtuali : 30-12-2008 alle ore 16.00.27

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •