3

可能的重复:
是否可以沙盒 JavaScript 在浏览器中运行?

我想让用户能够在这样的文本区域中输入 JavaScript:

<!DOCTYPE html>
  <html>
    <head>
      <script>
        function lapzwans()
        {
          var d = document.getElementById("area").value;
          document.getElementById("blahblah").innerHTML = d;
        }
      </script>
    </head>
  <body>
    <h1>Javascript in Javascript</h1>
    <p>This experiment attempts to launch a script from another script.</p>
    <p>Enter your script in the text area</p>
    <textarea type="text" id="area"></textarea>
    <button onclick="lapzwans()">Click here</button>
    <p id="blahblah"></p>
    <p id="deegroller">Make this text green</p>
  </body>
</html>

我已经尝试过了,但我没有得到任何结果。
这是不可能的,还是我做错了?
提前致谢。

4

3 回答 3

1

eval 方法接受传递给它的任何字符串并尝试运行它。

eval("alert('foo')");

会提醒“foo”;

于 2012-11-02T00:38:26.247 回答
1

您不需要使用邪恶的 eval 来执行此操作。

function lapzwans()
{
       var d=document.getElementById("area").value;
       document.getElementById("blahblah").innerHTML=d;

       var userScript = new Function(d);
       userScript();
}
于 2012-11-02T00:40:36.943 回答
1

一个可能的答案:

eval(/* some JS here */);

请注意,尽管您尝试执行的操作可能很危险(在某些情况下),因为您允许执行用户编写的任意 JS。

相关阅读:

于 2012-11-02T00:46:18.357 回答