我正在教学生如何编写JavaScript,所以我在页面上有这个:
<textarea name="PgmJS">console.log(1);</textarea>
<script id="PgmJS">
</script>
Run Code Online (Sandbox Code Playgroud)
我想做的是:
$('textarea[name=PgmJS]').on('keyup',PgmJSKeyUp);
function PgmJSKeyUp() {
$('#PgmJS').text('function init() {' + $(this).val() + '}');
init();
}
Run Code Online (Sandbox Code Playgroud)
但是浏览器说没有定义init().
这不起作用,你需要邪恶eval:
function PgmJSKeyUp() {
eval($(this).val());
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用Function,setTimeout或者setInterval(如果您清除它),这eval与使用字符串时一样邪恶.或者,如果你真的想使用<script>元素,
function PgmJSKeyUp() {
var $s = $('<script type="text/javascript">');
$s.text($(this).val());
$('body').append($s);
}
Run Code Online (Sandbox Code Playgroud)
但请记住,<script>元素中的JS代码只有在添加到文档时才会执行.
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |