【发布时间】:2015-12-08 19:51:31
【问题描述】:
我有一个文本区域,用户可以在其中输入 javascript 代码,按下按钮后该代码将传递给 eval()。
当用户输入以下内容时,我无法捕捉到 referenceError:
var myName = Maria;
而不是
var myName = "Maria";
感谢您的宝贵时间!
【问题讨论】:
-
用户输入的值始终是字符串。
-
@sᴜʀᴇsʜᴀᴛᴛᴀ 用户可以输入 javascript 代码,按下按钮时将 传递给 eval()。
-
您需要非常小心使用
eval()并在浏览器中执行用户代码,请确保在生产中使用类似的东西之前您知道自己在做什么 -
你误解了我 - 用户不只是输入名称,而是整个 js 行,即 var myName = ... 然后通过 eval() 在 js 中执行,因此用户可以传递任何内容。因此,当用户忘记字符串周围的引号时,js 会抛出我需要捕获的 referenceError,因为我想编写代码以继续运行并给用户反馈。
-
对于那些关心的人,我很清楚与 eval() 相关的风险