Для IE потребуется что-то в роде:
Код:
![Выделить весь код](images/misc/selectcode.png)
button.onclick = new Function('evt', 'alert(123)');
Однако лучше, имхо, использовать уже готовое решение
Код:
![Выделить весь код](images/misc/selectcode.png)
function addEvent(elt, name, handler, atEnd)
{
name = name.replace(/^(on)?/, 'on');
var prev = elt[name];
var tmp = '__tmp';
elt[name] = function(e) {
if (!e) e = window.event;
var result;
if (!atEnd) {
elt[tmp] = handler;
result = elt[tmp](e);
elt[tmp] = null; // delete() does not work in IE 5.0 (???!!!)
if (result === false) return result;
}
if (prev) {
elt[tmp] = prev; result = elt[tmp](e); elt[tmp] = null;
}
if (atEnd && result !== false) {
elt[tmp] = handler; result = elt[tmp](e); elt[tmp] = null;
}
return result;
}
return handler;
}
следующим, примерно, образом:
Код:
![Выделить весь код](images/misc/selectcode.png)
addEvent(button, 'onclick', function(e) { alert(123) });
Этот способ удобен тем, что объявив перед созданием анонимной функции некие нужные нам переменные, мы создаем "замыкание", грубо говоря, анонимная функция крутится в окружении этих переменных как объявленных глобально.