2011-05-29 104 views
0

如何获取javascript或jquery以获取我选择的文本/使用鼠标或键盘高亮显示的文本?如何使用Javascript或jQuery获取突出显示的文本?

+0

重复问题 – Ibu 2011-05-29 20:05:13

+2

http://www.quirksmode.org/dom/range_intro.html – Tomalak 2011-05-29 20:06:24

+0

这是一个很好的选择文本和操作的插件,应该很有用:http://plugins.jquery.com/project/a-tools – XGreen 2011-05-29 20:13:18

回答

1

与上文相似,这个所选的文本输出到一个div(改编自http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html):

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script language=javascript> 
$(document).ready(function() { 
var txt = ''; 
function getSelected() 
{ 
    if (window.getSelection) { 
    txt = window.getSelection(); 
    } 
    else if(document.getSelection) { 
    txt = document.getSelection(); 
    } 
    else if(document.selection) { 
    txt = document.selection.createRange().text; 
    } 
     txt = txt.toString(); 
    return txt; 
} 

$('#container').mouseup(function() { 
    $('#message').html(getSelected()); 
}); 
}); 
</script> 
<style type="text/css"> 
#message { 
    min-height: 20px; 
    width: 300px; 
    border: 1px solid orange; 
    padding: 5px; 
} 
</style> 
<div id="message"></div> 
<div id="container"> 
<p>Text to select</p> 
</div> 
+0

除非您支持Safari 2及更早版本,否则不需要'window.getSelection()'和'document.getSelection()'。 – 2011-05-29 22:20:07

0

对于文字区域,则可以使用此(上javascript wrap text with tag可见):

var val; 
      el = document.getElementById('textarea'); 
      if (el.setSelectionRange) { 
    //webkit & ff 
      var val = el.value.substring(el.selectionStart,el.selectionEnd); 
      } 
      else if(document.selection.createRange()) { 
// ie 
       var val = document.selection.createRange().text; 
      } 
相关问题