Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   не работает range в ie (https://javascript.ru/forum/misc/21710-ne-rabotaet-range-v-ie.html)

like2dev 21.09.2011 08:07

не работает 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;
}

Nightmare 21.09.2011 19:01

Ниче так написано

like2dev 21.09.2011 19:41

Огромное, спасибо вам. Очень информативно. Почитаю.


Часовой пояс GMT +3, время: 03:52.