Показать сообщение отдельно
  #5 (permalink)  
Старый 29.09.2012, 14:55
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Maxmaxmахimus, есть более приличный способ сделать замену в функции (с учётом того, что вручную код функции f() никак поменять, вариант со сменой обработчика подобной функцией в расчёт не берём, то есть нужно получить новую функцию из старой путём некоторых замен в старой)?
<button>click</button>
<button>change</button>
<script>
function f() {
	if (true) {
		alert('old');
	}
}
var childs = document.body.children;

childs[0].onclick = f;

childs[1].onclick = function () {
	childs[0].onclick = function () {
		eval(f.toString().replace ('old', 'new').replace('function f() {', '').replace(/}$/, ''));
	}
}
</script>

Последний раз редактировалось bes, 29.09.2012 в 15:03.
Ответить с цитированием