如何在猴子补丁过程中替换eval()



i开发一个浏览器扩展程序,将补丁应用于原始函数如下:

eval('sourceFunction=' + sourceFunction.toString().replace(/foo/g, 'bar'));

Mozilla附加组件目录的审阅者禁止使用Eval方法作为不安全。还有另一种方法可以类似地修补函数吗?

如果必须将原始函数的内容用作字符串,则不,可能不是。

虽然您可以使用new Function

sourceFunction = new Function("return " + sourceFunction.toString().replace(/*...*/))();

...禁止eval的任何明智的政策也可能会禁止new Function ..

最新更新