window.getSelection()的textarea无法在firefox中运行?

时间:2013-12-06 08:41:09

标签: javascript firefox

我正在尝试在HTML页面上获取选择文本。

我使用下面的代码,而textarea接缝上的window.getSelection()在Firefox中不起作用, 但在谷歌浏览器中工作正常。

  • 我使用的是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 个答案:

答案 0 :(得分:12)

由于this Firefox buggetSelection对表单字段中选择的文字显示不起作用。

正如this answer中所述,解决方法是改为使用selectionStartselectionEnd

以下是一个正常运行的修改示例:

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