Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2010, 16:43
dio dio вне форума
Новичок на форуме
Отправить личное сообщение для dio Посмотреть профиль Найти все сообщения от dio
 
Регистрация: 22.01.2010
Сообщений: 6

Установить выделение в пустую ноду в 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
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2010, 19:03
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Попробуйте setStart на текстовый узел.
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2010, 19:49
dio dio вне форума
Новичок на форуме
Отправить личное сообщение для dio Посмотреть профиль Найти все сообщения от dio
 
Регистрация: 22.01.2010
Сообщений: 6

Увы и setStart+setEnd и selectNodeContents дают один результат - никакой
Еще пробовал вставлять текстовую ноду с текстом, выделять, схлопывать выделение и устанавливать nodeValue='' - все также Вот уж не ожидал от вебкита такой подлянки
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2010, 21:26
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да в WebKit всегда WYSIWYG-режим был глючным.
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2010, 02:45
dio dio вне форума
Новичок на форуме
Отправить личное сообщение для dio Посмотреть профиль Найти все сообщения от dio
 
Регистрация: 22.01.2010
Сообщений: 6

Нашел более безобидный костыль - вставлять текстовую ноду с контентом "\n"
PS Не так уж безобидно - если курсор внутри слова - появляется пробел. Безнадежно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск