我在C中使用此代码示例得到上述错误,使用的函数在src.js中。当我加载webui时,会弹出someFunction()的错误,但是anotherFunction()工作正常:
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');
}
}
我要做的是删除按钮并将其替换为onload功能。有谁知道这段代码有什么问题?
答案 0 :(得分:0)
在javascript中,function
是用于创建函数的关键字。它不能用作任何函数的名称。
在src.js
中,将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
}
将其称为fprintf(out, "<body onload=\"someFunction()\">\n");
在someFunction()
中,您必须将函数作为参数传递给setTimeout
,而不是字符串。