Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   проблема с onClick в IE 10 (https://javascript.ru/forum/events/37029-problema-s-onclick-v-ie-10-a.html)

molnij 04.04.2013 22:45

проблема с onClick в IE 10
 
Добрый день
Есть работающая система. У пользователей с автообновлением пришел IE 10 и обнаружился странный баг.
Симптомы: при клике на элементах перестали выполнятся все действия.

Элементы (a, div) имеют обработчик onClick. С разными функциями внутри. Бряки поставленные внутри функций показывают, что до них поток даже не доходит.
Дополнительно усложняющие ситуацию симптомы:
У меня на двух разных машинах под IE 10 все продолжает работать. У ряда пользователей - нет.
На машине где не работает, если в devtools'ах IE в содержимом атрибута onclick исправить что-нибудь, оно начинает работать. Причем исправить можно что угодно: я пробовал добавить пробел между параметрами в вызове функции, точку с запятой в конце и прочие на мой взгляд не меняющие функционала вещи.


Сложилось впечатление, что этим я просто вызываю какую-то переинициализацию внутри браузера и он начинает подхватывать обработчики.

Подскажите что делать или хотя бы в какую сторону рыть? гугление ничего похожего не выдало. Проблемы с onClick в IE у народа встречаются, но в совершенно иных ситуациях

danik.js 04.04.2013 22:51

Вот вам и еще одна (правда под сомнением) причина не использовать атрибуты для навески обработчиков )

devote 05.04.2013 01:17

Цитата:

Сообщение от molnij
гугление ничего похожего не выдало.

странно что не выдало сообщение: НЕ ВЕШАЙ ОБРАБОТЧИКИ ЧЕРЕЗ АТРИБУТЫ!!!
Используйте нормальный способ кодирования, JS отдельно, HTML отдельно. Зачем совать все воедино, это же говнокод.

molnij 05.04.2013 09:31

Цитата:

Сообщение от devote (Сообщение 244331)
странно что не выдало сообщение: НЕ ВЕШАЙ ОБРАБОТЧИКИ ЧЕРЕЗ АТРИБУТЫ!!!
Используйте нормальный способ кодирования, JS отдельно, HTML отдельно. Зачем совать все воедино, это же говнокод.

Я в JS новичок и за бурей эмоций не очень понял, что именно вы рекомендуете?
Кстати гугл по "НЕ ВЕШАЙ ОБРАБОТЧИКИ ЧЕРЕЗ АТРИБУТЫ" не выдает ничего особо впечатляющего. Первая же ссылка ведет на http://javascript.ru/tutorial/events/intro, где написано, что варианты с document.getElementById('myElement').onclick = function() {} и атрибутом эквивалентны.
А учитывая, что в системе весь код генерируется, видимо автору было проще вешать обработчики по месту проживания элемента. И в чем-то я его могу понять.

ну и в целом хотелось бы понять, если код валидный, почему он не выполняется, а если нет - почему он выполняется

dmitriymar 05.04.2013 12:20

Цитата:

Сообщение от molnij
ну и в целом хотелось бы понять, если код валидный, почему он не выполняется, а если нет - почему он выполняется

НЕ ВЕШАЙ ОБРАБОТЧИКИ ЧЕРЕЗ АТРИБУТЫ!!!

cyber 05.04.2013 12:28

От ие будет хоть какаето польза , если не буду вешать обработчик через атрибут...

molnij 05.04.2013 13:44

Я искренне надеюсь, что не попал на местный флешмоб и еще раз прошу пояснить почему? Гугл по прежнему не в курсе этой фразы.

nikita.mmf 05.04.2013 13:49

DOM: свойства VS атрибуты

cyber 05.04.2013 13:55

molnij, как минимум когда читаешь такой код хочется по лицу дать.
Прочитайте эту статью http://learn.javascript.ru/introduction-browser-events
nikita.mmf, и причем тут свойства или в данном топике речь идет о событиях и почему лучше использовать свойство.

dmitriymar 05.04.2013 14:11

Цитата:

Сообщение от molnij
Я искренне надеюсь, что не попал на местный флешмоб и еще раз прошу пояснить почему? Гугл по прежнему не в курсе этой фразы.

А гугл не даёт ответа разве , что это была самая первая модель навески обработчиков , какой лет и лет ?
http://ru.wikipedia.org/wiki/JavaScript
http://ru.wikipedia.org/wiki/Document_Object_Model
И вполне логично не переносить устаревшее морально ?


Часовой пояс GMT +3, время: 16:07.