Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

window.getSelection() of textarea not working in firefox?

I am trying to get selection text on HTML page.

I use below code, and window.getSelection() on textarea seams not work in firefox, but works fine in Google Chrome.

  • I am using firefox 24, and chrome 27.

Here is a sample: 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;
    }
}
like image 668
user3047765 Avatar asked Dec 06 '13 08:12

user3047765


1 Answers

It appears getSelection does not work on text selected in form fields due to this Firefox bug.

As explained in this answer, the workaround is to use selectionStart and selectionEnd instead.

Here is a modified example that works correctly:

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

like image 134
John Karahalis Avatar answered Oct 16 '22 00:10

John Karahalis