是否可以动态添加jquery或javascript代码?

时间:2013-10-14 18:36:25

标签: jquery

我有这个文本框。当用户在文本框中编写一些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>');

  });
  });

2 个答案:

答案 0 :(得分: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);
    }
});

答案 1 :(得分:1)

您确定在页面中包含了jquery吗?我对你的代码进行了复制,它的工作正常http://jsfiddle.net/2R8wX/

(除非我添加<body>并拆分</script>