|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 Сообщения: 2566
|
Профиль | Отправить 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 | |
|