Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Для IE потребуется что-то в роде:
Код: Выделить весь код
button.onclick = new Function('evt', 'alert(123)');
Однако лучше, имхо, использовать уже готовое решение

Код: Выделить весь код
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;
 }
следующим, примерно, образом:
Код: Выделить весь код
addEvent(button, 'onclick', function(e) { alert(123) });
Этот способ удобен тем, что объявив перед созданием анонимной функции некие нужные нам переменные, мы создаем "замыкание", грубо говоря, анонимная функция крутится в окружении этих переменных как объявленных глобально.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:00, 20-12-2006 | #3