我想知道如何在按下按钮而不刷新整个页面的情况下运行用户在TextArea中发布的JS代码。我想要一个画布,一个TextArea和一个按钮。按下按钮时,它会从TextArea运行代码,然后在画布上绘制内容。
我知道如何将发布的代码放入变量字符串。
我不知道如何在该字符串中运行代码。
答案 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