Window.getSelection() текстового поля, не работающего в firefox?

Я пытаюсь получить текст выбора на странице HTML.

Я использую ниже код, а window.getSelection() на текстовых швах не работает в firefox, но отлично работает в Google Chrome.

  • Я использую firefox 24 и chrome 27.

Вот пример: http://jsfiddle.net/AVLCY/

HTML:

<div>Text in div</div>
<textarea>Hello textarea</textarea>
<div id='debug'></div>

JS:

$(document).on('mouseup','body',function(){
   $("#debug").html("You select '" + getSelectionText() + "'");
});

function getSelectionText() {
    if (window.getSelection) {
        try {
            // return "" in firefox
            return window.getSelection().toString();
        } catch (e) {
            console.log('Cant get selection text')
        }
    } 
    // For IE
    if (document.selection && document.selection.type != "Control") {
        return document.selection.createRange().text;
    }
}

Ответ 1

Похоже, что getSelection не работает над текстом, выбранным в полях формы из-за этой ошибки Firefox.

Как объяснено в этом ответе, обходным путем является использование selectionStart и selectionEnd.

Вот пример, который работает правильно:

http://jsfiddle.net/AVLCY/1/