JS如何在TextArea中运行用户发布的代码?

时间:2014-07-03 16:15:22

标签: javascript forms canvas textarea

我想知道如何在按下按钮而不刷新整个页面的情况下运行用户在TextArea中发布的JS代码。我想要一个画布,一个TextArea和一个按钮。按下按钮时,它会从TextArea运行代码,然后在画布上绘制内容。

我知道如何将发布的代码放入变量字符串。

我不知道如何在该字符串中运行代码。

3 个答案:

答案 0 :(得分:2)

您应该能够在eval()函数中包装代码。 It evaluates JavaScript code represented as a string.

示例:

eval(new String("2 + 2")); // returns a String object containing "2 + 2"
eval("2 + 2");             // returns 4

在您的情况下,您需要从文本区域读取代码并将其传递给eval()它看起来像这样:

eval(document.getElementById('textareaid').value);

答案 1 :(得分:0)

如果是HTML,只需将其发送到带有提交按钮的变量即可 文件撰写("可变&#34)。

答案 2 :(得分:0)

我知道最安全,最简单的方法是使用node.js:

function runStr (i){
    var vm = require ('vm');
    var box = {};
    vm.createContext(box);
    vm.runInContext(`prgm = function(){return ${i};}`, box);
    return box.prgm();
}
console.log(runStr("2 + 2")); // 4