pen*_*ake 10 javascript eval callback code-injection
我想写这样一个函数:
function doGoodJob(someId, callBackfunction){
// some stuff with someId
// todo: RUN callBackFunction here
}
Run Code Online (Sandbox Code Playgroud)
他们说eval在代码注入方面是"危险的".
那么,编写一个接受回调函数并安全运行它的JavaScript函数的最佳做法是什么?
Ric*_*end 24
你的回调是字符串还是实际函数?
如果它的功能..
function doGoodJob(someId,callbackFunction)
{
callbackFunction();
}
doGoodJob(1,function(){alert('callback');});
Run Code Online (Sandbox Code Playgroud)
如果是字符串,则可以使用Function构造函数.
function doGoodJob(someId,callbackFunction)
{
var func = new Function(callbackFunction)
func();
}
doGoodJob(1,"alert('test');");
Run Code Online (Sandbox Code Playgroud)
或测试两者..
function doGoodJob(someId,callbackFunction)
{
var func = (typeof callbackFunction == 'function') ?
callbackFunction : new Function(callbackFunction);
func();
}
doGoodJob(1,function(){alert('callback');});
doGoodJob(1,"alert('test');");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13344 次 |
| 最近记录: |