运行存储在字符串变量中的Javascript函数

时间:2019-01-15 23:46:21

标签: javascript function

我从存储在字符串变量中的ajax调用获得了以下函数。

obj.action="DisplayActivity('modalDisplay', 0, 4);"

我正在尝试运行它,但是没有成功。我尝试过:

eval(obj.action);

并带有:

窗口[obj.action]

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

尝试使用New Function

let s = "console.log('Hello '+a)",
call = new Function('a', s)

call('world!')

请确保避免从GET / POST调用内容,否则将导致它成为typical xss,从而允许通过特殊的链接更改DOM。

答案 1 :(得分:1)

我想这是一个范围界定问题。

尝试:

eval("global.tmp = function(DisplayActivity){" + obj.action + "};");
global.tmp(DisplayActivity);