[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отредактировать функцию со страницы
123456
На странице есть функция

ajax.plainpost = function (a, f, u) {
// 100500 строк в функции...
}



Мне необходимо дописать в начало этой функции код alert('1');

.
Делаю так:

// Получаю функцию и преобразую в строку
var my_func_msg = String(ajax.plainpost);

// Определяем начало функции
var my_len = my_func_msg.indexOf('{') + 1;

// Код, который будет вставлен в начало функции
var my_script = 'alert(\'1\'); ';

// текстовый вариант полученной функции
var newFunc = my_func_msg.substr(0, my_len) + my_script + my_func_msg.substr(my_len);

// Присваиваем
ajax.plainpost = eval('(' + newFunc + ')');



Но мне надо сделать все тоже самое, но без использования eval

Есть какие мысли?
123456
разобрался

ajax.plainpost = eval('(' + newFunc + ')');


заменил на

ajax.plainpost = new Function("return " + newFunc )();
Invis1ble
кошмар
var originalPlainpost = ajax.plainpost;

ajax.plainpost = function () {
alert('1');
return originalPlainpost.apply(this, arguments);
};


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

123456
Invis1ble
хорошо, это я как пример привел. На самом то деле мне надо в switch добавить case

Можно как-то проще сделать?
Invis1ble
есть принципиальная разница между
Цитата (123456 @ 16.11.2016 - 19:15)
дописать в начало этой функции код

и
Цитата (123456 @ 17.11.2016 - 17:39)
в switch добавить case
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.