Обнаружение и пробел с помощью JavaScript - PullRequest
4 голосов
/ 15 марта 2011

Я пытаюсь прочитать содержимое contentEditable div и извлечь текущее активное слово. то есть. слово, которое только что было введено или слово, которое было изменено.

Мой первоначальный подход был:

  1. получить строку как innerHTML
  2. получить позицию курсора с помощью функции (теперь я могу найти слово, которое было изменено)
  3. читать назад, пока не будет найден пробел (символьное сравнение)
  4. извлечь слово из найденной точки пространства.

Но проблема в том, что браузер иногда преобразует пробелы в  , а иногда нет (нет проблем, если есть только один пробел) Затем я решил использовать второй цикл, чтобы прочитать 5 символов, если найден a ;, и проверить это. Но это кажется очень неэффективным. Так есть ли лучший способ сделать это?

Ответы [ 3 ]

7 голосов
/ 16 марта 2011

Я нашел обходной путь. Ранее я использовал innerHTML для получения содержимого. Теперь я использую targ.firstChild.nodeValue, где targ - это элемент, содержимое которого необходимо. Затем проверка с помощью str.charCodeAt(i)==32 || str.charCodeAt(i)==160 .

Это хорошо работает.

3 голосов
/ 26 апреля 2017

String.fromCharCode(160) работал для меня.Он обозначает   символ.if(str == ' ') не работал в условии if, также не работал trim ();но if(str == String.fromCharCode(160)) работал.

Для проверки нормального пространства используйте if(str.trim() == '')

0 голосов
/ 15 марта 2011

Я думаю, что вы ищете здесь: неразрывный пробел в Javascript .

...