[Range] surroundContents
Проблема в следующем.
К примеру, выделяю слово и оборачиваю его тегом. Получаю Выделяю Получаю Выделяю Ничего не получаю Как лечить?:help: Код: //rng объект Range rng.surroundContents(document.createElement("b")); |
Попробуй span. И не плохо бы полный код примера.
|
Цитата:
|
Цитата:
<iframe src="text.html" frameborder="3"></iframe> <span id='magic'>Magic</span> Содержимое text.html <div contenteditable="true">Текст текст и еще текст</div> Ну сам скрипт document.getElementById('magic').onclick = getAndEdit; function getAndEdit(){ var rng = window.frames[0].document.getSelection().getRangeAt(0); rng.surroundContents(document.createElement("span")); } |
А попробуй сделать rng.setStartBefore(rng.startContainer) и rng.setEndAfter(rng.endContainer). Может, у тебя рейндж не всю ноду выделяет?
|
Смотрите в консоль:
Uncaught InvalidStateError: Failed to execute 'surroundContents' on 'Range': The Range has partially selected a non-Text node.И не спрашивайте меня какого хъ он не может сам определить как ему сделать surroundContents в таком случае, а кидает ошбку. Все проклятья - в адрес разработчиков стандарта.=\ |
В давние неспокойные времена оборачивание в теги в WYSIWYG редакторах делали следующим образом:
document.execCommand('fontName', false, 'fake') потом заменяли все <font name="fake"> на нужный тег |
Часовой пояс GMT +3, время: 16:29. |