从 textarea 内部执行 Javascript(自定义 JS 控制台)
我有兴趣在 CMS 后端构建一个文本编辑器,允许用户将 Javascript 写入文本区域并在编辑时对其进行测试。
我能想到的最接近的是类似的东西。
document.head.appendChild(document.createElement('script')).src='http://site.com/file.js';
但
.src='http://site.com/file.js';
我需要用文本区域值填充脚本元素。有谁知道如何处理这样的事情?
I am interested in building a text editor in a CMS backend that allows users to write Javascript into a textarea and test it while editing.
The closest I can think of is something like.
document.head.appendChild(document.createElement('script')).src='http://site.com/file.js';
But instead of
.src='http://site.com/file.js';
I would need to fill the script element with the textarea value. Does anyone have any idea as how to handle something like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我自己写了一个简单的其中一个(在 IE 中不起作用):http://phrogz。 net/tmp/simplejs.html
I have written a simple one of these myself (doesn't work in IE) here: http://phrogz.net/tmp/simplejs.html
使用 eval() 函数。
如果您打算让用户在您的 CMS 中输入 JavaScript,请确保您已掌握 跨站脚本攻击(XSS)。
Use the eval() function.
And if you're going to let users enter JavaScript into your CMS, be sure you're up to speed on cross-site scripting (XSS).
我认为你应该进行 ajax 调用来加载页面。我推荐 JQuery,它使它变得非常简单,并且他们的网站上有很多示例。
它看起来像这样:
其中“txta”是文本区域的 id。
如果你想在浏览器中执行脚本,你可以使用 javascript eval() 函数 - 但我会非常谨慎地使用这种方法,因为它可能导致各种安全缺陷,包括跨站点脚本攻击。
I think you should make an ajax call to load the page. I'd recommend JQuery, which makes it very easy, and there are plenty of examples on their site.
It would look something like this:
Where 'txta' is the id of the textarea.
If you want to execute the script in the browser, you can use the javascript eval() function - but I would exercise extreme caution with this approach since it can lead to all sorts of security flaws, including cross-site scripting attacks.