|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Кроссброузерное создание обработчика события |
|
[решено] Кроссброузерное создание обработчика события
|
![]() Старожил Сообщения: 302 |
Господа, есть следующий код:
<script language="JavaScript" type="text/javascript"> <!-- var d = document; function create_form(id) { var ph_comm = d.getElementById('ph_comm'); var button = d.createElement('input'); button.setAttribute('name','button'); button.setAttribute('type','button'); button.setAttribute('value','Отправить'); button.setAttribute('onclick','alert(123)'); button.className = 'lang_link'; ph_comm.appendChild(button); } //--> </script> <A class=lang_link onclick="create_form(); return false;" href="javascript:void(0);">Создать кнопку</A> <div id="ph_comm"></div> Не пойму почему не срабатывает событие (!) Интересно что в Firefox - срабатывает. P.S. IE 6.0 SP2 |
|
Отправлено: 15:19, 20-12-2006 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:09, 20-12-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Для IE потребуется что-то в роде:
Однако лучше, имхо, использовать уже готовое решение 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; } Этот способ удобен тем, что объявив перед созданием анонимной функции некие нужные нам переменные, мы создаем "замыкание", грубо говоря, анонимная функция крутится в окружении этих переменных как объявленных глобально. |
------- Отправлено: 20:00, 20-12-2006 | #3 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать |
Отправлено: 00:11, 21-12-2006 | #4 |
![]() Старожил Сообщения: 302
|
Профиль | Сайт | Отправить PM | Цитировать Да, самое оно. Решено.
|
|
Отправлено: 13:40, 21-12-2006 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
EventID - Уведомление Ист. события: HHCTRL Категория события: Отсутствует. Код события: 1903 | cleric1985_n | Устранение критических ошибок Windows | 7 | 27-11-2015 16:14 | |
EventID - Код: 0 Источник: ACEEventLogSource | VSerge | Устранение критических ошибок Windows | 41 | 22-04-2013 08:53 | |
EventID - Источник события: SceCli, код события: 1202, предупреждение 0x534 | Michael | Устранение критических ошибок Windows | 3 | 28-01-2009 13:25 | |
Delphi - Создание на Delphi компонентов с непрямоугольной областью реакции на события мыши | Andrik | Программирование и базы данных | 7 | 02-12-2007 16:34 | |
EventID - [решено] Источник события:Windows Installer 3.1 Код события: 4379 | ozzik | Устранение критических ошибок Windows | 2 | 31-10-2007 15:41 |
|