2017-05-22 8 views
-1

Ich bekomme den obigen Fehler mit diesem Codebeispiel in C, die verwendeten Funktionen sind in src.js. Wenn ich die webui laden, erscheint der Fehler für somefunction nach oben(), aber anotherFunction() funktioniert gut:Onload funktioniert nicht: Uncaught Referenzfehler, Funktion nicht definiert

fprintf(out, "<script type='text/javascript' src='/src.js'></script>\n"); 
fprintf(out, "<body onload=\"someFunction()\">\n"); 
fprintf(out, "<button type='button' id='CheckButton' onclick='anotherFunction()'>Check</button></br>"); 

src.js:

var check = 0; 
function someFunction() 
{ 
    req=new XMLHttpRequest(); 
    req.onreadystatechange=yetAnotherFunction; 
    req.open("GET","xxx",true); 
    req.send(); 
    setTimeout("someFunction()", 3000); 
} 

function anotherFunction() 
{ 
    if (!check) { 
    check = 1; 
    setButtonText('CheckButton', 'Stop Checking'); 
    someFunction(); 
    } else { 
    check = 0; 
    setButtonText('CheckButton', 'Checking'); 
    } 
} 

Was ich versuche zu tun ist, entfernen Sie die Schaltfläche und ersetzen Sie sie durch die Onload-Funktion. Weiß jemand, was mit diesem Code nicht stimmt?

+0

Was ist 'function()'? –

+0

Sind Sie sicher, dass function() in src.js definiert ist? Wenn src.js im selben Verzeichnis des HTML ist, verwenden Sie nur src = "src.js" – Ollaw

+1

'Funktion' ist ein reserviertes Wort. Sie können keine Funktion namens 'function' haben. – rustyx

Antwort

0

In Javascript, function ist ein Schlüsselwort, das zum Erstellen von Funktionen verwendet wird. Es kann nicht als Name einer Funktion verwendet werden.

In Ihrem src.js, ändern zu somefunction

function someFunction() { 

    console.log("someFunction") 
    req = new XMLHttpRequest(); 
    req.onreadystatechange = yetAnotherFunction; 
    req.open("GET", "xxx", true); 
    req.send(); 
    setTimeout(someFunction, 3000); // <== this is wrong 
} 

es

In someFunction() als fprintf(out, "<body onload=\"someFunction()\">\n"); zu nennen, müssen Sie eine Funktion als Parameter an setTimeout, kein String übergeben.

+0

das war nur ein Beispiel, also habe ich die Frage bearbeitet, um klarer zu sein, danke – purry

+1

fügen Sie bitte 'src.js' hinzu und wo eigentlich' src.js' liegt? im Root-Verzeichnis '/'? –

+0

src.js ist im selben Verzeichnis wie die c-Datei – purry

Verwandte Themen