| 
 Как назначить событие html-элементу? Вопрос по теории(а может и по практике):  Как назначить событие html-элементу <iframe>, которое ему не "свойственно"? А ситуация такая: решил висивиг-редактор простенький сам написать, только через <iframe> и <textarea> в тупик зашел, и решил написать собственную функцию обработчик, который бы вызывался по событию keydown и добавлял к значению через innerHtml нажатую букву. Только проблема в том, что события клавиатуры "keydown" поддерживают только элементы формы. Можно ли искуственно назначить событие? | 
| 
 Для создания WYSIWYG-редакторов используют iframe, у которого выставлено свойство document.designMode = "On"; ("on" для Gecko) или элемент (работает не во всех браузерах) с contentEditable = true. События нажатия клавиш отлавливаются на document вашего iframe. | 
| 
 Я про это читал, только мой редактор пока еще до этого "недожил". Я на этапе ввода символов застрял. И сделать я его хочу, кстати, как раз через <iframe>. Я спрашивал, можно ли как то добавить событие к <iframe>. Мануалы говорят, что у этого узла только события onload, onresize, onunload. А я хочу искусственно навязать событие keydown, так, чтобы при фокусе на <iframe> и нажатии клавиши, её значение присваивалось html содержанию этого фрейма | 
| 
 Цитата: 
 Цитата: 
 
var iframe = document.getElementById("идентификатор_фрейма");
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
iframeDocument.designMode = "On";
iframeDocument.onkeypress = function(e) {
    …
};
Ввод символов позволяет сам браузер, когда вы переводите документ в designMode. | 
| 
 var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; - Это мы устраняем различие между IE и DOM2-совместимыми браузерами? (Это так, кой какие мысли проверить) | 
| 
 Не помню точно, между старой Оперой и другими браузерами вроде. | 
| 
 Все вроде заработало, обработчики переприсваиваются, только с установлением designMode  в "On" все, что я хотел сделать, стал выполнять сам броузер (т.е. зря я мозг себе парил :( ) Octane, а как можно присвоить ему значение (<iframe>)? Я пробовал с помощью .innerHtml и write(), а также .value, и чет не получается | 
| 
 iframeDocument.body.innerHTML = "тарам пам пам"; | 
| 
 Я думаю, стоит немного описать ситуацию: я написал (вернее нашел и под себя изменил) скрипт замены обработчиков событий, т.е. при возникновении события (в моем случае keydown) в качестве обработчика (и вместо него) вызывается моя функция, которой передается 3 аргумента: html-элемент target, в котором данное событие произошло, значение клавиши chars, которая сгенерировала это событие и объект event, содержащий дополнительные параметры этого события.  Так вот, если прописать в моей функции: target.body.innerHTML +=chars ; желаемого результата это не приносит. Похоже, в target приходит что-то не то, т.е. должен как раз быть элемент 
document.getElementById("идентификатор_фрейма").contentDocument.body;
Как можно проверить, что там приходит? | 
| 
 Например, вывести с помощью alert :) | 
| Часовой пояс GMT +3, время: 13:12. |