Вот что я нашел: http://jsfiddle.net/jwvha/211/Вставка HTML под курсором в IFRAME
Этот пример очень хорошо работает во всех браузерах (в IE6 ~ IE10, Chrome, Firefox и т.д.).
Я изменил его на работу в плавающем фрейме, вот мой приблизительный код:
insertHtml : function(html){
iframe.contentWindow.focus()
var sel, range;
if (iframe.contentWindow.getSelection) {
sel = iframe.contentWindow.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while (node = el.firstChild) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
} else if (iframeDocument.selection && iframeDocument.selection.type != "Control") {
// IE < 9
iframeDocument.selection.createRange().pasteHTML(html);
}
}
Это очень хорошо работает в IE6 - IE8, но в IE9 и IE10 я получаю следующее сообщение об ошибке:
SCRIPT5022: WrongDocumentError
на этой линии: range.insertNode(frag);
Я не знаю, почему это произошло, и как разрешить его, так что я должен был использовать свой сломанный английский язык, чтобы обратиться за помощью.
Большое спасибо! Оно работает! – user2435742