Visualizzazione risultati 1 fino 11 di 11

Discussione: Javascript, errore ad una riga inesistente

  1. #1
    Guest

    Predefinito Javascript, errore ad una riga inesistente

    function INIT() {
    var text = array();
    var oXHR = new xmlHttpRequest();
    oXHR.open('get', 'url', true);
    oXHR.onreadystatechange = function() {
    if(oXHR.readyState == 4) {
    text[1] = oXHR.responseText;
    }
    }


    function UM(testo) {
    var text = array();
    text[0]=testo;
    var oXHR = new xmlHttpRequest();
    oXHR.open('get', 'url', true);
    oXHR.onreadystatechange = function() {
    if(oXHR.readyState == 4) {
    text[1] = oXHR.responseText;
    if(text[0]!=text[1]) {
    alert('Nuova modifica!');
    }
    return text[1];
    }
    }


    testo=INIT();
    setInterval('testo=UM(testo)', 4000);

    La console degli errori mi da un errore alla linea 41. Ma lo script ne ha 39!

  2. #2
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    E tu ne hai copiate qua solo 29, il che non aiuta molto Altri script? file inclusi?

    In ogni caso, questo pezzo non dovrebbe funzionare
    Codice:
    testo=INIT();
    setInterval('testo=UM(testo)', 4000);
    perché il primo parametro deve essere una funzione. Prova con
    Codice:
    var testo = INIT();
    setInterval(  function(){ testo = UM(testo); } , 4000);

  3. #3
    Guest

    Predefinito

    Scusate, la sto provando in greasemonkey, quindi ci sono dei commenti iniziali. Lo script è solo quello, comunque.
    L'errore è sempre 2 righe più in la della fine.
    Grazie della risposta, comunque. Non sapevo della funzione. Lo sto imparando adesso, js.

  4. #4
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    altri metodi per scrivere la stessa cosa:
    Codice:
    function roba() {
      testo = UM(testo);
    }
    
    // nota che non c'è scritto roba() con le parentesi, che sarebbe 
    // il risultato della chiamata alla funzione.
    setInterval( roba , 4000 );
    Codice:
    // funzione anonima, che piazziamo dentro la variabile roba
    var roba = function() { testo = UM(testo); };
    
    setInterval( roba , 4000 );

  5. #5
    Guest

    Predefinito

    Grazie, ma non va ancora.

  6. #6
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Secondo me l'errore è questo:
    Codice:
    var oXHR = new xmlHttpRequest();
    Non è xmlHttpRequest ma XMLHttpRequest ( javascript è case sensitive)

  7. #7
    Guest

    Predefinito

    Niente. Stesso errore.

  8. #8
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Il problema dello scrivere codice non indentato. L'ho copiato in un editor ed improvvisamente ha avuto senso - mancano graffe qua e la, per cui tutto quel codice è dentro la funzione INIT che non viene mai chiusa.

  9. #9
    Guest

    Predefinito

    veramente dal suo codice la funzione init viene chiusa, quindi l'errore è da un'altra parte, é la funzione UM che non viene chiusa, aggiungi una graffa alla fine e dovrebbe essere a posto

  10. #10
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Citazione Originalmente inviato da worldpixel Visualizza messaggio
    veramente dal suo codice la funzione init viene chiusa, quindi l'errore è da un'altra parte, é la funzione UM che non viene chiusa, aggiungi una graffa alla fine e dovrebbe essere a posto
    No, nessuna delle due viene chiusa. Le due graffe che vedi chiudono una l'if ed una la funzione anonima messa in onreadystatechange. Un simile errore viene fatto sotto.

    In totale, grande mancanza di graffe, indentate indentate indentate

  11. #11
    Guest

    Predefinito

    Grazie, ho risolto. Il codice è indentato, avevo saltato solo un'indentatura, ma quando ho copiato nel forum si è "appiattito".

Regole di scrittura

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