在javascript中我创建了一个命令:
DataFrame
这使我能够在浏览器中使用html编辑器。还会创建它需要使用的id,因为它取决于数据库中的内容。 我该怎么执行这个?所有命令都放在一个数组中。
答案 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();
});
请注意,我们不会在我们推动的功能中使用i
或data[i]
;请参阅this question's answers了解原因。
如果 您有充分的理由在字符串中执行代码,您可以通过new Function(...)()
执行此操作,如下所示:
arrSetContentCommands.forEach(function(command) {
new Function(command)();
});
但是 非常非常非常少的情况是合适的,显然绝对不会使用您不信任的代码。