我正在开发一个应用程序,它允许用户输入JavaScript和超文本标记语言在ace编辑器。布局将如下所示:

希望你明白我想做的事情,当用户单击run按钮时,将执行以下脚本,但我不知道如何打印用户编写的代码的输出。
运行函数代码:
let { jsVal, htmlVal, cssVal } = this.state; // this gets all three editor values
var script = document.createElement('script');
var iframe = document.createElement('iframe');
var html = `<html><head><style>${cssVal}</style></head><body>${htmlVal} <script>${jsVal}</script></body></html>`;
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
document.body.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();
iframe.onload = function() {
var div = iframe.contentWindow.document;
iframe.contentWindow.document.getElementsByTagName('html')[0]
};iframe.contentWindow.document.getElementsByTagName('html')给了我这个
<html><head><style>#editor {
background: "#ddd";
}</style></head><body><div id="editor">Thu Feb 28 2019 18:36:07 GMT+0530 (India Standard Time)</div><script>document.getElementById('editor').innerHTML = Date()</script></body></html>我一直在努力让它在输出容器中执行,任何关于这方面的线索或帮助都会让我很开心。如果你需要更多的细节,我准备提供他们。提前谢谢。
发布于 2019-03-01 11:38:44
Ace-Editor只是一个编辑器。如果你想执行你的代码,你需要自己实现……
发布于 2019-03-17 18:06:30
https://stackoverflow.com/questions/54937169
复制相似问题