我可以将一些Javascript传递给函数,然后在函数中执行该Javascript,例如
test("a = 1; b = 2; test2(a,b);");
function test(js) {
// execute dynamically generated JS here.
}
基本上我有一些在服务器上生成的代码,我想将该代码传递给JS函数,当它完成处理时,它会执行作为参数传递的代码。
这对setTimeout的参数也很有用,然后传递的代码可以在超时事件中执行。
可以这样做吗?
答案 0 :(得分:2)
如果你做这样的事情可以作为一个例子:
function foo(){
alert('foo');
}
function bar(fn){
fn();
}
bar(foo); // alerts 'foo'
答案 1 :(得分:1)
eval()
是可能想要的。
答案 2 :(得分:1)
您可以使用eval()
:http://www.w3schools.com/jsref/jsref_eval.asp
但是,请注意不要让自己面临安全问题。
答案 3 :(得分:1)
您可以使用eval()。
答案 4 :(得分:1)
除了使用eval
之外,您还可以从参数字符串中创建一个函数,如此
test("a = 1; b = 2; test2(a,b);");
function test(js) {
var fn = new Function(js);
// execute you new function [fn] here.
}
答案 5 :(得分:0)
答案 6 :(得分:0)
这是eval
的用途:
test("a = 1; b = 2; test2(a,b);");
function test(js) {
eval(js);
}
提示“eval is evil”的评论。
答案 7 :(得分:0)
你可以这样做:
function test(js) {
setTimeout(js, 1000); //Execute in 1 second
}