Автор Тема: ИЕ не реагирует на события  (Прочитано 5547 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« : 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

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #1 : 10 Января 2006, 13:15:27 »
Да, зыбал добавить...

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

При этом, если обработчик задавать через link.onclick = \'\'; перестает работать везде.

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
ИЕ не реагирует на события
« Ответ #2 : 10 Января 2006, 13:17:49 »
а какие версии браузеров? как сам, наверное, не все версии поддерживают последние версии Жабы скрипт
Пространные размышления об ИТ и все что вокруг

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #3 : 10 Января 2006, 13:25:21 »
ИЕ - 6
Mozila - 1.7.12
Firefox - 1.5
Opera - 8.5

Насколько я понимаю у меня последние версии броузером, так что как минимум у меня самого это должно работать. Кроме того все функции должны поддерживаться начиная с 4-й версии ИЕ. Вобщем не понимаю...

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
ИЕ не реагирует на события
« Ответ #4 : 10 Января 2006, 13:47:51 »
Цитировать
Код не работает только в ИЕ

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


т.е даже вот подобный код не работает?
<a href="#" onclick=alert("Note")>
Пространные размышления об ИТ и все что вокруг

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #5 : 10 Января 2006, 14:01:49 »
Код не работает только при програмной генерации html-кода, как я писал выше.

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

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

<a href="#" onclick="alert(\'text\'); return false;">Показать текст</a>

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

В ИЕ я не знаю как посмотреть сгенерированный код. Если смотреть через DOM Explorer, все должно быть точно также, но при этом не работает. Т. е. при шелчке по ссылке грузится страница \'#\'.

Оффлайн noocky

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ИЕ не реагирует на события
« Ответ #6 : 10 Января 2006, 22:10:34 »
Попробуй через метод attachEvent() (вместо setAttribute()).

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/attachevent.asp

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #7 : 11 Января 2006, 11:44:50 »
ИЕ выдает ошибку "несовпадение типов". Пишу так:

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

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #8 : 11 Января 2006, 13:36:10 »
Замучался я с этими ивентами... Поискав в гугле, понял что задача не тривиальная, а заморачиваться нет времени и сил.

Решил сделать вывод через innerHTML, вроде стало работать.

Оффлайн noocky

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 39
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
ИЕ не реагирует на события
« Ответ #9 : 11 Января 2006, 14:10:37 »
Цитировать
ИЕ выдает ошибку "несовпадение типов". Пишу так:


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


attachEvent, на сколько я понимаю, не передает параметры функции. Т.е. прокатит только somefunc() (без параметров). Причем второй параметр attachEvent должен быть названием функции без кавычек и без скобок. Вот такая вот ситуация. :)

Оффлайн Anthony

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 77
  • +0/-0
  • 0
    • Просмотр профиля
ИЕ не реагирует на события
« Ответ #10 : 11 Января 2006, 14:17:38 »
Да, это я понял, но разбираться с этим уже нет сил. Спасибо за помощь!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28