如何从JS上的Input字段执行脚本?

时间:2011-11-07 19:49:10

标签: javascript

我想在单击按钮时从可编辑的输入字段执行脚本

例如,如果您键入“ alert(”x“); ”,我想提醒您“x”,但如果您输入“ for(i = 0; i< 3; i ++){alert(i);} “我希望它能够执行它。

我怎样才能做到这一点?

  

编辑: eval()是唯一的解决方案?因为我读到它很危险:   https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval#section_5

4 个答案:

答案 0 :(得分:3)

请注意,您正在接收用户的输入并在您网站上的脚本环境中运行。因此,脚本可以执行浏览器/域上运行的JavaScript能够执行的任何操作(包括cookie窃取,XSS,偷渡式恶意软件等)。

您唯一可以现实地做的是减轻风险,而不是eval()用户提供的内容。我建议考虑以下替代方案:

  1. 使用iframe作为运行用户脚本的环境: http://dean.edwards.name/weblog/2006/11/sandbox/
  2. 使用Caja。它允许网站安全地嵌入来自第三方的DHTML Web应用程序,并实现嵌入页面和嵌入式应用程序之间的丰富交互。它使用对象功能安全模型来实现各种灵活的安全策略。 http://code.google.com/p/google-caja/
  3. 快乐的编码!

答案 1 :(得分:1)

答案 2 :(得分:1)

使用eval()命令,它将评估并执行您传递给它的javascript。

答案 3 :(得分:0)

使用eval,例如onclick =“eval(document.getElementById('your_input'))”