在javascript中执行动态创建的代码

时间:2018-02-22 11:17:33

标签: javascript jquery

在javascript中我创建了一个命令:

DataFrame

这使我能够在浏览器中使用html编辑器。还会创建它需要使用的id,因为它取决于数据库中的内容。 我该怎么执行这个?所有命令都放在一个数组中。

1 个答案:

答案 0 :(得分:2)

解决方案是:不要创建代码字符串并将它们放在一个数组中。只需执行代码:

$('#titel'+i).trumbowyg('html', data[i].value);

如果这些元素尚未存在,只需稍后运行此代码,或者如果由于某种原因您以后无法访问data,则构建一系列函数:

arrSetContentCommands.push(function(index, value) {
    $('#titel'+index).trumbowyg('html', value);
}(i, data[i].value));

......以后:

arrSetContentCommands.forEach(function(command) {
    command();
});

请注意,我们不会在我们推动的功能中使用idata[i];请参阅this question's answers了解原因。

如果 您有充分的理由在字符串中执行代码,您可以通过new Function(...)()执行此操作,如下所示:

arrSetContentCommands.forEach(function(command) {
    new Function(command)();
});

但是 非常非常非常少的情况是合适的,显然绝对不会使用您不信任的代码。