Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    getElementById in funzione non va

    Salve a tutti, ho fatto uno script e l'ho strutturato in questo modo:

    function cerca(){
    document.getElementById("caricato").style.display ="none";
    document.getElementById("caricamento").style.displ ay ="block";

    ... corpo script tagliato contiene condizioni e loop...

    document.getElementById("caricamento").style.displ ay ="none";
    document.getElementById("caricato").style.display ="block";
    top.focus();
    self.focus();
    }

    ho due layer nella pagina rispettivamente <div id="caricamento" ... e caricato ovviamente.

    Il problema sta nel fatto che prima lo script mi funzionava, nel senso che come cliccavo sul link, si avviava la funzione cerca, sparivano eventuali layer visibili tipo caricato, si visualizzava il layer caricamento, e alla fine della funzione veniva visualizzato il layer caricato.

    Adesso ho appesantito di brutto la funzione con controlli e controllini, e non mi funziona più, la pagina s'incanta, appare d'appertutto una manina, e quando lo script ha svolto la sua funzione mi appare il layer caricato.

    Ho messo all'inizio e subito dopo le prime righe un alert per vedere se magari non eseguiva le prime righe di codice per un errore mio di parentesi, ma esegue perfettamente l'alert.

    Dove sbaglio???

    Grazie, ciao.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    impossibile dirlo
    quello che hai postato e' corretto

  3. #3
    infatti, prima addirittura funzionava, cmq se vuoi posso postare il codice intero.

    a mio parere potrebbe essere lo script troppo pesante, perchè quando clicco, la finestra sembra s'impalli, rimane coi colori come se fosse fuori focus, e addirittura nei primi secondi impedisce di accedere alle finestre sottostanti, ma come ho già scritto, mettendo un'alert vicino, lo script risponde.
    Tanto per precisare SO winXP, IE6.

    Grazie, ciao.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    no, se puoi posta il link alla pagina

  5. #5
    A dire il vero sarei riuscito a sfiorare la soluzione, anche se francamente ci sto impazzendo un pò su, infatti, se metto un'alert subito dopo le prime righe, dopo aver premuto il tasto ok, riesco a visualizzare il layer di caricamento, tuttavia, visto che il metodo non è dei più eleganti, e che se non premi "ok" lo script non va avanti, vorrei sapere se esiste un sistema per eludere lo script facendolo fermare per un attimo attendendo una conferma che gli viene data dopo un secondo.
    Io ho provato mettendo tipo

    while (i=1){
    break;
    }
    ma ho fatto un buco nell'acqua.
    Mi affido a chi ne sa sicuramente più di me.

    Il link è
    www.calabriainvacanza.com
    - prova a fare una ricerca "in Calabriainvacanza" col termine "caccuri".

    p.s. non fare caso alla freccia e alle cose che non funzionano, sto facendo solo prove

    Grazie per la tua pazienza.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    fai così: metti una funzione (creata da me )
    codice:
    function getObjectById(id) {
      if(document.getElementByid) return document.getElementById(id);
      if(document.all) return document.all[id];
      if(document.layers) return document.layers[id];
      return null;
    }
    e poi dove interessa metti:
    codice:
    var caricato = getObjectById('caricato');
    var caricamento = getObjectById('caricamento);
    caricato.style.display = 'none';
    caricamento.style.display = 'block';
    ...
    caricato.style.display = 'block';
    caricamento.style.display = 'none;
    ciao.

  7. #7
    Grazie Billo ho provato e non funziona, non penso sia un problema di script, ma è proprio la pagina che s'impalla.

    cmq nel tuo script mancano due apici di chiusura.

    codice:
    var caricamento = getObjectById('caricamento);
    
    caricamento.style.display = 'none;


    Ciao.

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Separa le due azioni con un timer:

    function cerca(){
    document.getElementById("caricato").style.display ="none";
    document.getElementById("caricamento").style.displ ay ="block";
    setTimeout("continua()",500);
    }
    function continua() {

    ... corpo script tagliato contiene condizioni e loop...

    document.getElementById("caricamento").style.displ ay ="none";
    document.getElementById("caricato").style.display ="block";
    top.focus();
    self.focus();
    }

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    forse ci siamo quasi,
    purtroppo, sin dall'inizio vi ho nascosto una cosa terrificante che nessuno di voi ha calcolato
    I PARAMETRI!
    ho provato in questo modo:

    codice:
    function cerca(param1,param2){ 
    document.getElementById("caricato").style.display ="none"; 
    document.getElementById("caricamento").style.display ="block"; 
    setTimeout("continua("+param1+","+param2+"), 500); 
    } 
    function continua(param1,param2) { 
    ...
    se il mio parametro sarà miaStringa1
    mi restituisce: 'miaStringa1' non è definito.

    procediamo;

    facendo in questo modo:

    codice:
    function cerca(param1,param2){ 
    document.getElementById("caricato").style.display ="none"; 
    document.getElementById("caricamento").style.display ="block"; 
    setTimeout(continua(param1,param2),500); 
    } 
    function continua(param1,param2) { 
    ...
    funziona, ma non mi fa apparire il layer caricamento (quindi abbiamo fatto un buco nell'acqua )
    e mi restituisce questo errore:
    sulla riga - setTimeout("continua("+param1+","+param2+"), 500);
    errore - Argomento non valido.

    provando con altre soluzioni o non funzionava proprio o mi retituiva l'errore del primo esempio.


    Grazie per il vostro aiuto.

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se i parametri sono stringhe ti sei dimenticato gli apici:

    setTimeout("continua('"+param1+"','"+param2+"'), 500);

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.