Интересно вы пишете, что сами разобраться не можете.
1) Если "есть фокус ввода", тогда если "если не выделена картинка"
Комментарий: - либо "выделена картинка", либо "фокус ввода", вам не кажется, что это 2 исключающие друг друга события.
2)Если вы пытаетесь в IE таким образом получить доступ к объектам iframe, - тогда у вас опять ошибка
var iframee_doc=document.getElementById('iframe_id').c ontentWindow.documnt
и только после этого плясать
var el=iframe_doc.getElementById('id_Element')
3) Есть много моментов, ваш код не потянет, ключевой код отсутствует.
Ваша задача ясна, но вы просите разобраться в коде, а не написать за вас скрипт, что было бы наверное проще.
Вот что это такое:
editor(field).body.focus()
После этого вы спрашиваете, почему фокус у body, а не у нужного вам объекта.
"<span id='focus' name='focus'></span>"
Что вообще за манера писать ключевые слова, где не нужно или создавать объекты с одинаковыми идентификаторами, когда есть "class" или обращение к дочерним элементам родителя.
Гугл вам на что, если хотите добавить createContextualFragment в IE, то так и пишите "createContextualFragment in IE", не ужели так сложно(((
Range.prototype.createContextualFragment = function(sHtml){
var f = document.createDocumentFragment(),
var div = document.createElement("div");
f.appendChild(div);
div.outerHTML = sHtml;
return f;}
Лентяи давно все уже за вас написали.