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