当我尝试将eventlistener设置为我的按钮(带“ ^”的条件)时,出现了Uncaught SyntaxError:HTMLButtonElement出现意外的令牌<错误。 我不知道该怎么办。 预先谢谢你
op = ["button","#hello","^somefun()","<father"];
var el = document.createElement(op[0]);
if(op[s][0] == "#"){
el.id = op[s].substring(1,op[s].length);
s++;
console.log(s);
}
// set class of element
if(op[s][0] == "."){
el.className = op[s].substring(1,op[s].length);
s++;
console.log(s,el.style.className);
}
//set text that will be in element
if(op[s][0] == "_"){
el.innerHTML = op[s].substring(1,op[s].length);
s++
console.log(s);
}
//there i got a error!
if(op[s][0] == "^"){
s++;
el.addEventListener("click",function () {
eval(op[s]);
});
s++;
console.log(s);
}
答案 0 :(得分:0)
当您向eval
发出呼叫时,将传入存储在数组("^somefun()"
)中的完整字符串。 ^somefun()
是语法错误。您需要对字符串进行切片以排除^
。
可能需要重做的其他一些事情:
==
,对于javascript,请使用===
,这样可以防止意外行为。eval
,这是出于安全考虑答案 1 :(得分:0)
正如其他人在评论中指出的那样,问题出在“ op”和这一行:
login.php
更改为:
op = ["button","#hello","^somefun()","<father"];
将解决此问题。