【问题标题】:JavaScript CompilerJavaScript 编译器
【发布时间】:2021-03-31 11:02:42
【问题描述】:

我正在尝试从 textarea 编译 JS 代码并获取此代码的输出,我尝试使用 eval(),但没有得到完整的响应。如何从字符串编译 JS 代码并获得完整响应? (如 playcode.io)

【问题讨论】:

  • 什么是“没有得到完整的回应”?
  • 例如:如果我运行和循环并且每次迭代我运行console.log,只有最后一个日志输出了

标签: javascript npm dependencies


【解决方案1】:

你可以尝试使用函数构造函数

但要小心 XSS 攻击

const code = 'Math.abs(-1)';
const result = new Function('', 'return (' + code + ')')();

console.log(result) // 1

您也可以使用第一个字符串通过参数传递参数

const code = 'Math.abs(someNumber)';
const runCode = new Function('someNumber', 'return (' + code + ')');

runCode(-1);

【讨论】:

  • 您也可以制作一些 iframe 元素并通过脚本标签注入内联 JS。如果您选择这种方式,它将允许您动态添加样式和 html
  • 我试过了,但没有按预期工作。
  • @ChristianCury 你能分享一个你的代码示例吗?
猜你喜欢
  • 2014-11-13
  • 1970-01-01
  • 2012-06-03
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
相关资源
最近更新 更多