Запустите функцию Javascript, хранящуюся в строковой переменной - PullRequest
0 голосов
/ 16 января 2019

Я получил следующую функцию, полученную из вызова ajax, которая хранится в строковой переменной.

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

Я пытаюсь запустить его, но безуспешно. Я пробовал с:

eval(obj.action);

и с:

окно [obj.action]

Есть идеи? Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Полагаю, это проблема с областью видимости.

Попытка:

eval("global.tmp = function(DisplayActivity){" + obj.action + "};");
global.tmp(DisplayActivity);
0 голосов
/ 16 января 2019

Попробуйте использовать Новая функция :

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

call('world!')

Убедитесь, что вы не вызываете вещи из GET / POST, иначе это будет типичный xss , позволяющий изменить ваш DOM со специальной созданной ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...