2013-05-25 1 views
4

Есть ли в любом случае, чтобы получить следующий символ после window.getSelection()? Мне нужно проверить, является ли символ после выделенного текста пробелом или нет ...Получение следующего символа после window.getSelection()

EDIT: Спасибо за ваши ответы! Я в основном использую this link, чтобы выделить текст, но хотел бы ограничить все слова. Я использовал представленное решение ниже (Стивеном) в качестве отправной точки; Я думаю что должно работать:

sel = window.getSelection(); 
var text = sel.anchorNode.nodeValue; 
var index = sel.baseOffset + sel.focusOffset-1; 
var isSpace = text[index] === undefined; 
if (isSpace) { 
alert("space"); 
} 

(В приведенной выше ссылке, я использовал этот код сразу после вызова функции makeEditableAndHighlight).

+0

Хороший вопрос :) –

+0

Спасибо! И ... мое решение выше на самом деле не работает. :( – Eric

ответ

1

Попробуйте так:

var sel = window.getSelection() 
var text = sel.anchorNode.nodeValue; 
var index = sel.baseOffset + sel.focusOffset; 
var isSpace = text[index] === ' '; 
+0

Это неверный пример, потому что представление строки выбора может появляться несколько раз в 'anchorNode' –

+0

Лучше как' var index = window.getSelection(). BaseOffset + window.getSelection(). FocusOffset; ' –

+0

Кроме того, нет необходимости в индексе + 1 таким образом. –

2

Это начало, если есть по крайней мере еще один персонаж в focusNode:

window.getSelection().focusNode.textContent.charAt(window.getSelection().focusOffset) 
+0

Мне нужно сделать еще несколько тестов, но это выглядит многообещающе! – Eric

+0

Это работает для меня в Safari. Но после некоторых исследований я обнаружил, что метод getSelection() не работает для старых браузеров. Интересно, могу ли я каким-то образом используйте тишину Тина Дауна ... – Eric

 Смежные вопросы

  • Нет связанных вопросов^_^