我想在数据库记录中定义函数和脚本,然后使用Javascript将数据库字段从字符串转换为代码。
我以为我可以使用'eval',但这似乎不起作用。
举个例子:
var strTest = "function(strParams) { alert('hello: ' + strParams); };"
,fn = eval(strTest);
fn("World");
这不起作用,eval返回undefined,希望这给出了我想要实现的目标。
答案 0 :(得分:3)
问题是eval
将您的函数解析为函数声明。但是函数声明需要一个名字。
相反,你应该把它变成一个函数表达式,它不需要一个。
var strTest = "(function(strParams) { alert('hello: ' + strParams); })";
eval(strTest)("World");
只有在信任字符串时才这样做。
或者,您可能对Function
构造函数感兴趣:
var f = Function("strParams", "alert('hello: ' + strParams)");
f("World");
答案 1 :(得分:0)
您可以尝试这样的事情:
<script src="http://my-server/js-func/foobar.js"></script>
让服务器提供从该端点的DB检索到的JS。