0

我有这个文本框。当用户在文本框中编写一些 Jquery 代码并单击应用时。我希望将代码应用于 Html 页面。代码被附加到正文,但生成的点击功能不起作用。我也尝试将代码附加到 HEAD,单击也不能以这种方式工作。它有可能起作用吗?

我的 HTML 代码是

  <span id="clickme">Click Me</span>
  <textarea id="txt">
  $('#clickme').click(function(){
       alert("clicked");
    });
  </textarea>
  <button id="apply">Apply</button>

我的jQuery是

  $(document).ready(function(){
  $(document).on('click','#apply',function(){
  var code=$('#txt').val();
  $('body').append('<script type="text/javascript">'+code+'</script>');

  });
  });
4

2 回答 2

3

注意,通常eval被认为是evil。那是因为当它是错误的工作工具时,它经常被(ab)使用。然而,在这种情况下,您只是想运行一些模棱两可的代码,这意味着您已经将页面的控制权直接交给了用户。


eval将 JavaScript 代码直接评估为字符串。当您可以简单地调用时,没有理由尝试将其作为script元素添加到页面中:

$(document).on('click', '#apply', function () {
    try {
        eval($('#txt').val());
    } catch (ex) {
        //might as well report to the console what went wrong
        window.console&&console.error(ex.message);
    }
});
于 2013-10-14T18:49:57.710 回答
1

你确定你的页面中包含了 jquery 本身吗?我复制粘贴了你的代码,它可以工作http://jsfiddle.net/2R8wX/

(除了我添加<body>和拆分</script>

于 2013-10-14T18:54:02.163 回答