2010-03-04 35 views
9

Wie kann ich die Zeichenpositionen des ausgewählten Texts in einem HTML <input> Textfeldelement abrufen? window.getSelection() funktioniert nicht in Textfeldern.Ausgewählten Text in einem Textfeld abrufen

+0

@Ant - wir brauchen mehr Informationen. Welche Sprache verwendest du? Geht das nur auf dem Browser (clientseitig) oder auf dem Server? – Oded

+0

sagen, Javascript und Firefox. window.getSelection() funktioniert nicht in einem Textfeld. – alfred

Antwort

12

Wenn Sie jQuery verwenden, einen Blick auf die jQuery-Plugin Caret nehmen: jCaret

// Get start pos in intput box with id="box1" 
$("#box1").caret().start 

// Get end pos 
$("#box1").caret().end 

// Get selected text 
$("#box1").caret().text 
4

........

<script language=javascript> 
function getSelText() 
{ 
    var txt = ''; 
    if (window.getSelection) 
    { 
     txt = window.getSelection(); 
      } 
    else if (document.getSelection) 
    { 
     txt = document.getSelection(); 
      } 
    else if (document.selection) 
    { 
     txt = document.selection.createRange().text; 
      } 
    else return; 
document.aform.selectedtext.value = txt; 
} 
</script> 

<input type="button" value="Get selection" onmousedown="getSelText()"> 

<form name=aform > 
<textarea name="selectedtext" rows="5" cols="20"></textarea> 
</form> 

Referenz: http://www.codetoad.com/javascript_get_selected_text.asp

2

Wenn Sie wirklich alte Versionen von Internet Explorer nicht unterstützen müssen, verwenden Sie einfach die Eigenschaften selectionEnd und selectionStart des Elements.

Verwandte Themen