Эта функция может помочь вам:
jQuery.fn.getSelectedText = function() {
var sSelectedText = "";
// all browsers, except IE before version 9
if (window.getSelection) {
var sTagName = this.get(0).tagName.toLowerCase();
sSelectedText = (
sTagName == 'input' || sTagName == 'textarea' ?
this.val().substring (
this.get(0).selectionStart
, this.get(0).selectionEnd
) :
document.getSelection().toString()
);
}
// Internet Explorer before version 9
else {
if (document.selection.createRange) {
sSelectedText = document.selection.createRange().text;
}
}
return sSelectedText;
}
Также смотрите мой jsfiddle .
=== ОБНОВЛЕНИЕ ===
Если ваша кнопка не является <input type="button/submit" ... />
или <button ...>
, вы должны помнить выделенный текст после каждого нажатия:
var sSelectedText = '';
$('body').click(function() {
sSelectedText = $('#text').getSelectedText();
});
$('body').dblclick(function() {
sSelectedText = $('#text').getSelectedText();
});
При нажатии кнопки выделенный текст находится в sSelectedText:
$('#button').click(function(e) {
alert(sSelectedText);
});
Также смотрите мой новый jsfiddle .