02.06.2009, 13:04 | #1 |
Участник
|
Событие onkeydown в описании электронной почты
В Электронной почте есть поле description, которое контролируется descriptionIFrame. Как-нибудь можно подобраться к этому полю? Мне нужно приаттачить событие "onkeydown".
var iFrame = document.getElementById("descriptionIFrame"); iFrame.contentWindow.document.attachEvent("onkeydown", function() { alert("keyDown"); }); - не действует iFrame.document.body.attachEvent("onkeydown", function() { alert("keyDown"); }); - тоже не действует |
|
02.06.2009, 13:20 | #2 |
Moderator
|
Может быть сперва описать ф-цию а потом атачить?
Код: function hello() { alert('Hello world!'); } var isAttached = document.getElementById('btn').attachEvent('onclick', hello); if (isAttached == false) { alert('Attach failed!'); }
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
02.06.2009, 13:56 | #3 |
Участник
|
И так тоже пробовала. Текст в начальном сообщении - это уже упрощенный вариант
|
|
02.06.2009, 15:05 | #4 |
Moderator
|
Судя по всему есть некая специфика работы с Iframe в IE - из фрейма нельзя получить объект Документ, к которому можно приатачить обработчики события (http://www.w3schools.com/htmldom/dom_obj_iframe.asp). По крайней мере мне не удалось. onmouseover, тем не менее отрабатывает нормально.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional Последний раз редактировалось Артем Enot Грунин; 02.06.2009 в 16:14. |
|
02.06.2009, 16:33 | #5 |
Участник
|
Спасибо за ответ. Пока ничего не получается, но уже подключили дополнительных людей
|
|
04.06.2009, 16:12 | #6 |
Участник
|
Если вдруг кому-нибудь интересно, то вот код, который работает
crmForm.all.descriptionIFrame.attachEvent("onreadystatechange", DescriptionFrameIfReady); function DescriptionFrameIfReady() { if (crmForm.all.descriptionIFrame.readyState =="complete") { var result = crmForm.all.descriptionIFrame.contentWindow.document.body.attachEvent("onkeydown", function(evt) { evt = (evt) ? evt : ((event) ? event : null); if (evt.ctrlKey && evt.keyCode==13) { if (crmForm.IsDirty()) { if (crmForm.IsValid()) { var answer = window.confirm("Сохранить проделанные изменения?"); if (answer) {crmForm.Save(); window.close();} else{ crmForm.detachCloseAlert(); window.close();} } else{crmForm.detachCloseAlert(); evt.cancelBubble = true;} } else window.close(); } else if (evt.keyCode==27) window.close(); } ); } } Ключевое слово здесь var result, аналогичное var isAttached из сообщения №2, но к сожалению оставшееся незамеченным мной. Последний раз редактировалось BSvetlana; 04.06.2009 в 16:15. |
|
04.06.2009, 19:10 | #7 |
Moderator
|
И в чем его значение, не понимаю? Весь код нужен был только чтобы подменить форму закрытия? Тогда зачем так сложно?..
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
05.06.2009, 16:05 | #8 |
Участник
|
Вообще-то мне нужно было узнать, КАК это делать, а не ваше мнение, зачем это нужно
|
|
05.06.2009, 23:09 | #9 |
Moderator
|
Как обычно
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|