Установить выделение в пустую ноду в 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:26. |