Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: 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. Но вот когда щелкаешь по ней, ничего не происходит. Даже если на онклик повесить простой алерт, ничего не происходит.
-
Да, зыбал добавить...
Код не работает только в ИЕ, в мозиле, файерфоксе и опере все работает как нужно.
При этом, если обработчик задавать через link.onclick = \'\'; перестает работать везде.
-
а какие версии браузеров? как сам, наверное, не все версии поддерживают последние версии Жабы скрипт
-
ИЕ - 6
Mozila - 1.7.12
Firefox - 1.5
Opera - 8.5
Насколько я понимаю у меня последние версии броузером, так что как минимум у меня самого это должно работать. Кроме того все функции должны поддерживаться начиная с 4-й версии ИЕ. Вобщем не понимаю...
-
Код не работает только в ИЕ
Даже если на онклик повесить простой алерт, ничего не происходит.
т.е даже вот подобный код не работает?
-
Код не работает только при програмной генерации html-кода, как я писал выше.
Кстати, кто-нибудь может подсказать как посмотреть html-код в ИЕ, который должен генерироваться скриптом. В мозиле есть DOM source для этого, а в ИЕ ничего не нашел подобного.
Так вот, если в мозиле посмотреть на сгенерированный код, он будет таким же как ты и написал, т. е.:
Показать текст
и это работает.
В ИЕ я не знаю как посмотреть сгенерированный код. Если смотреть через DOM Explorer, все должно быть точно также, но при этом не работает. Т. е. при шелчке по ссылке грузится страница \'#\'.
-
Попробуй через метод attachEvent() (вместо setAttribute()).
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/attachevent.asp
-
ИЕ выдает ошибку "несовпадение типов". Пишу так:
_link.attachEvent(\'onclick\',\'alert(\\\'test\\\')\');
-
Замучался я с этими ивентами... Поискав в гугле, понял что задача не тривиальная, а заморачиваться нет времени и сил.
Решил сделать вывод через innerHTML, вроде стало работать.
-
ИЕ выдает ошибку "несовпадение типов". Пишу так:
_link.attachEvent(\'onclick\',\'alert(\'test\')\');
attachEvent, на сколько я понимаю, не передает параметры функции. Т.е. прокатит только somefunc() (без параметров). Причем второй параметр attachEvent должен быть названием функции без кавычек и без скобок. Вот такая вот ситуация. :)
-
Да, это я понял, но разбираться с этим уже нет сил. Спасибо за помощь!