Благодарю за критику - сразу видно человек в теме!
Начал копать со 2-го пункта:
function editor_frame(field){
/*
for(var i=0;i<window.frames.length;i++){
if(window.frames[i].name==("editor_frame"+field)){
return window.frames[i];
};
};
*/
return document.getElementById("editor_frame"+field).contentWindow;
};
function editor(field){
return editor_frame(field).document;
};
Хорошо что поправили - теперь обращение к фрейму более оптимизировано (а через цикл).
editor(field).body.focus(); - вообще убрал из кода - действительно и без нее все работает.
По 1), мне необходимо запомнить последнюю позицию курсора в редакторе - установить метку span, поэтому первое условие - пользователь ткнул мышкой, но он может ткнуть мышкой не только в текст, но и в картинку\таблицу да еще и выделить текст - поэтому оставить только одно условие не могу - должны подходить все 3: ткнул, не в картинку, не выделил текст.
А если пользователь все-тки выделил текст или ткнул в картинку - необходимо установить метку span после выделенного текста или картинки - выше я задавал этот вопрос как это сделать (даж картинку рисовал).
Если посмотреть на тот же TinyMCE- открыть редактор (
http://www.tinymce.com/tryit/full.php), ткнуть на картинку-логотип справа, нажать на кнопку вставки спец-символа или смайлика - вставить, картинка затерется, а я же хочу чтобы символ\смайлик вставлялись после выделенного объекта.
Проблема увода фокуса ввода есть и tiny - он тоже манипулирует span-метками (__caret), да и "окна" вставки символов\смайлов у него модальные, а у меня - нет, что влечет дополнительные трудности.