jac*_*bdo 8 javascript referenceerror
我有一个textarea,用户可以输入javascript代码,按下按钮后将传递给eval().
当用户输入如下内容时,我无法捕获referenceError:
var myName = Maria;
Run Code Online (Sandbox Code Playgroud)
代替
var myName = "Maria";
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间!
Sur*_*tta 20
好吧,正如你所说,你了解了这个问题eval(),我在这里提出一个解决方案.
try {
var myName = Maria;
} catch (e) {
if (e instanceof ReferenceError) {
// Handle error as necessary
}
}
Run Code Online (Sandbox Code Playgroud)
尝试在 eval() 调用周围放置一个try/catch 块。像这样:
try {
eval(userInput);
} catch (e) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
(请注意,出于安全原因,将用户输入传递给 eval()不是您应该在真实站点上执行的操作。)