Установить выделение в пустую ноду в webkit
Дело происходит в iframe с contenteditable
Выделение схлопнуто. Задача - вставить некоторую ноду и поместить курсор в нее. Нода пустая. Код примерный, чтоб не вдаваться в особенности реализации:
var n = doc.createElement('div')
n.appendChild(doc.createTextNode(''))
var s = win.getSelection();
var r = s.getRangeAt(0);
r.insertNode(n)
r.selectNodeContents(n)
r.collapse(false)
s.removeAllRanges()
s.addRange(r)
Прекрасно работает в ff и opera, в webkit браузерах выставляет выделение перед новой нодой Можно ли как-нибудь уговорить сафари/хром ставить выделение куда нужно мне, а не им? Как временное решение придумал - для вебкита поместить в текстовую ноду символ \uFEFF |
Попробуйте setStart на текстовый узел.
|
Увы и setStart+setEnd и selectNodeContents дают один результат - никакой
Еще пробовал вставлять текстовую ноду с текстом, выделять, схлопывать выделение и устанавливать nodeValue='' - все также :( Вот уж не ожидал от вебкита такой подлянки |
Да в WebKit всегда WYSIWYG-режим был глючным.
|
Нашел более безобидный костыль - вставлять текстовую ноду с контентом "\n"
PS Не так уж безобидно - если курсор внутри слова - появляется пробел. Безнадежно :( |
| Часовой пояс GMT +3, время: 05:34. |