从textarea内部执行Javascript(自定义JS控制台)

时间:2011-02-02 14:16:35

标签: javascript textarea eval

我有兴趣在CMS后端构建一个文本编辑器,允许用户将Javascript写入textarea并在编辑时对其进行测试。

我能想到的最接近的就是。

document.head.appendChild(document.createElement('script')).src='http://site.com/file.js';

但不是

.src='http://site.com/file.js';

我需要用textarea值填充script元素。有没有人知道如何处理这样的事情?

3 个答案:

答案 0 :(得分:2)

我自己写了一个简单的(在IE中不起作用):http://phrogz.net/tmp/simplejs.html

答案 1 :(得分:2)

使用eval()功能。

 eval(document.getElementById('wmd-input').value);

如果您要让用户在您的CMS中输入JavaScript,请确保您能够快速了解​​cross-site scripting (XSS)

答案 2 :(得分:0)

我认为你应该进行ajax调用来加载页面。我推荐使用JQuery,它非常简单,并且在他们的网站上有很多例子。

它看起来像这样:

$.get('http://site.com/file.j', function(data) {
    $('#txta').text(data);
});

其中'txta'是textarea的id。

如果你想在浏览器中执行脚本,你可以使用javascript eval()函数 - 但我会谨慎使用这种方法,因为它可能导致各种安全漏洞,包括跨站点脚本攻击