Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Anthony от 10 Января 2006, 13:07:02

Название: ИЕ не реагирует на события
Отправлено: Anthony от 10 Января 2006, 13:07:02
Сталкивался ли кто-нибудь с такой проблемой?

Ситуация следующая, я программно вывожу ссылку, для которой хотел бы задать обработчик события onclick. Делаю следующим образом:


link = document.createElement(\'a\');
link.setAttribute(\'onclick\',\'alert(\\\'test\\\'); return false;\');
link.href = \'javascript:void(0);\';
text = document.createTextNode(_text);
link.appendChild(text);


Дальше все это аппэндится в ячейку таблицы и т. д. в конце таблица пихается на страницу.

После вывода таблицы у ссылки, если смотреть через DOM Explorer, у ссылки два атрибута href и onclick. Но вот когда щелкаешь по ней, ничего не происходит. Даже если на онклик повесить простой алерт, ничего не происходит.
Название: ИЕ не реагирует на события
Отправлено: Anthony от 10 Января 2006, 13:15:27
Да, зыбал добавить...

Код не работает только в ИЕ, в мозиле, файерфоксе и опере все работает как нужно.

При этом, если обработчик задавать через link.onclick = \'\'; перестает работать везде.
Название: ИЕ не реагирует на события
Отправлено: Greg от 10 Января 2006, 13:17:49
а какие версии браузеров? как сам, наверное, не все версии поддерживают последние версии Жабы скрипт
Название: ИЕ не реагирует на события
Отправлено: Anthony от 10 Января 2006, 13:25:21
ИЕ - 6
Mozila - 1.7.12
Firefox - 1.5
Opera - 8.5

Насколько я понимаю у меня последние версии броузером, так что как минимум у меня самого это должно работать. Кроме того все функции должны поддерживаться начиная с 4-й версии ИЕ. Вобщем не понимаю...
Название: ИЕ не реагирует на события
Отправлено: Greg от 10 Января 2006, 13:47:51
Цитировать
Код не работает только в ИЕ

Цитировать
Даже если на онклик повесить простой алерт, ничего не происходит.


т.е даже вот подобный код не работает?
Название: ИЕ не реагирует на события
Отправлено: Anthony от 10 Января 2006, 14:01:49
Код не работает только при програмной генерации html-кода, как я писал выше.

Кстати, кто-нибудь может подсказать как посмотреть html-код в ИЕ, который должен генерироваться скриптом. В мозиле есть DOM source для этого, а в ИЕ ничего не нашел подобного.

Так вот, если в мозиле посмотреть на сгенерированный код, он будет таким же как ты и написал, т. е.:

Показать текст

и это работает.

В ИЕ я не знаю как посмотреть сгенерированный код. Если смотреть через DOM Explorer, все должно быть точно также, но при этом не работает. Т. е. при шелчке по ссылке грузится страница \'#\'.
Название: ИЕ не реагирует на события
Отправлено: noocky от 10 Января 2006, 22:10:34
Попробуй через метод attachEvent() (вместо setAttribute()).

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/attachevent.asp
Название: ИЕ не реагирует на события
Отправлено: Anthony от 11 Января 2006, 11:44:50
ИЕ выдает ошибку "несовпадение типов". Пишу так:

_link.attachEvent(\'onclick\',\'alert(\\\'test\\\')\');
Название: ИЕ не реагирует на события
Отправлено: Anthony от 11 Января 2006, 13:36:10
Замучался я с этими ивентами... Поискав в гугле, понял что задача не тривиальная, а заморачиваться нет времени и сил.

Решил сделать вывод через innerHTML, вроде стало работать.
Название: ИЕ не реагирует на события
Отправлено: noocky от 11 Января 2006, 14:10:37
Цитировать
ИЕ выдает ошибку "несовпадение типов". Пишу так:


_link.attachEvent(\'onclick\',\'alert(\'test\')\');


attachEvent, на сколько я понимаю, не передает параметры функции. Т.е. прокатит только somefunc() (без параметров). Причем второй параметр attachEvent должен быть названием функции без кавычек и без скобок. Вот такая вот ситуация. :)
Название: ИЕ не реагирует на события
Отправлено: Anthony от 11 Января 2006, 14:17:38
Да, это я понял, но разбираться с этим уже нет сил. Спасибо за помощь!