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/