Показать сообщение отдельно
  #1 (permalink)  
Старый 21.09.2011, 08:07
Аспирант
Отправить личное сообщение для like2dev Посмотреть профиль Найти все сообщения от like2dev
 
Регистрация: 23.08.2010
Сообщений: 35

не работает range в ie
Есть такой код, с помощью которого вставляются смайлы в iframe. Но почему-то он не хочет отрабатьывать в ie. Пишет что marker = null.
То есть не может найти span с ид. Ид генерируется нормально проверял.
Единственное незнаю, как проверить попал ли текст в rng. Еще одно замечание, то что если в ифрейме выделен текст какой-то, то все отлично отрабатывает.

var overwriteWithNode = (window.getSelection)?w3_overwriteWithNode:ie_overwriteWithNode;

function ie_overwriteWithNode(editWindow, node) {
    var rng = editWindow.document.selection.createRange();
    var marker = writeMarkerNode(editWindow, rng);
    marker.appendChild(node);
    marker.removeNode(); // removes node but not children
}

// writes a marker node on a range and returns the node.
function writeMarkerNode(editWindow, rng) {
    var id = editWindow.document.uniqueID;
    var html = "<span id='" + id + "'></span>";
    rng.pasteHTML(html);
    var node = editWindow.document.getElementById(id);
    return node;
}
Ответить с цитированием