2010-03-08 216 views
0

我可以将一些Javascript函数传递给某个函数,然后从函数内部执行该Javascript,例如:将javascript传递给函数

test("a = 1; b = 2; test2(a,b);"); 

function test(js) { 
// execute dynamically generated JS here. 
} 

基本上我有一个是在服务器上生成的一些代码,我想的代码传递给它时,它已经处理完它执行作为参数传递的代码一个JS功能。

这对于setTimeout的参数也是有用的,然后传递的代码可以在超时事件中执行。

可以这样做吗?

+0

以下工作答案的功能,但如何是所生成的服务器脚本给客户端?取决于可能有​​更好的方法。 – 2010-03-08 12:22:31

+1

如果你在服务器上动态生成JS,那么你可能做错了什么。先写JS,然后从服务器传递数据。使用这些数据来确定要运行哪些功能。 – Quentin 2010-03-08 12:24:09

回答

2

,如果你做这样的事情作为一个例子,是可能的:

function foo(){ 
alert('foo'); 
} 

function bar(fn){ 
fn(); 
} 

bar(foo); // alerts 'foo' 
0

这是eval是:

test("a = 1; b = 2; test2(a,b);"); 

function test(js) { 
    eval(js); 
} 

线索的冲击 “EVAL是邪恶的” 意见。

0

你可以这样做:

function test(js) { 
    setTimeout(js, 1000); //Execute in 1 second 
} 
1

在使用eval代替,你可以创建一个从参数字符串这样

test("a = 1; b = 2; test2(a,b);"); 

function test(js) { 
    var fn = new Function(js); 
    // execute you new function [fn] here. 
}