it-swarm-ru.tech

почему возвращение string.length не определено?

Во всплывающем окне selText имеет значение «great», но длина всегда undefined. Что-то связано с кодировкой строки?

var selText = document.getSelection(); //suppose "great" is selected
alert( "selected ->" + selText + " len is " + selText.length);
18
pierrotlefou

Потому что вы получаете объект выбора DOM вместо String. Чтобы получить текст, позвоните toString().

var selText = document.getSelection().toString();

Причиной того, что строка успешно отображается в предупреждении, является то, что конкатенация вызывает неявную toString().

29
user113716

Документация MDN гласит.

В приведенном выше примере selObj - это автоматически "конвертируется" при прохождении в окно. Тем не менее, чтобы использовать Свойство или метод JavaScript String например, длина или подстрока, вы должны вручную вызвать метод toString.
- https://developer.mozilla.org/en/window.getSelection

Он предлагает вам позвонить document.getSelection().ToString().length;

2
John K

Устаревший метод document.getSelection () Попробуйте использовать window.getSelection ().

var selText = window.getSelection().toString();
        if(selText)
        {
            alert( "selected ->" + selText + " len is " + (selText.length - 1));
        }
0
The Mask