2009-09-07 6 views
-2

je besoin d'un Javascript très simple sur une page html, qui procédez comme suit ..simple script java travail

Afficher un texte comme:

This is a string of text and can be long 

alors si vous marquez une partie du texte votre souris, le texte sélectionné doit être inséré et automatiquement mis à jour dans un champ de texte

Comment puis-je le faire?

Répondre

1

Créer une zone de texte en lecture seule (vous pouvez utiliser CSS pour la décorer en tant que simple bloc de texte). Traitez ensuite l'événement onSelect pour la sélection de la précession. Vous obtiendrez quelque chose comme:

<script language="JavaScript"> 
function display(txtarea) 
{ 
    var sl = (txtarea.value).substring(txtarea.selectionStart, txtarea.selectionEnd); 
    alert (sl); 
} 
</script> 
<textarea name="entry" onSelect="display(this);">Some text.</textarea> 
0
<script type="text/javascript"> 
function render(element) 
{ 
    var stext = element.value.substring(element.selectionStart, element.selectionEnd); 
    document.getElementById('selText').value = stext; 
} 
</script> 
<input id="selText" value="" /> 
<textarea name="entry" onclick="render(this);">This is a string of text and can be long 
</textarea> 

Hope this helps

0

Solution avec jQuery Based on this link

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function(){ 

    var textSelected = function(el, elResult) { 

     var len = el.val().length; 
     var textarea = document.getElementById(el.attr("id")); 

     if($.browser.msie) { 
      if (document.selection) { 
       var range = document.selection.createRange(); 
       var stored_range = range.duplicate(); 
       stored_range.moveToElementText(textarea); 
       stored_range.setEndPoint('EndToEnd', range); 
       textarea.selectionStart = stored_range.text.length - range.text.length; 
       textarea.selectionEnd = textarea.selectionStart + range.text.length; 

       var start = textarea.selectionStart; 
       var end = textarea.selectionEnd; 
      } 
     } else { 
      var start = textarea.selectionStart; 
      var end = textarea.selectionEnd;  
     } 

     var sel = textarea.value.substring(start, end); 
     if (sel.length!=0) 
      elResult.val(sel); 
    }; 

    $("#text-entry").bind("select", function(){ 
     textSelected($(this), $("#select-text")); 
    }); 
}); 
</script> 
</head> 
<body> 
<input id="select-text" type="text" /><br /> 
<textarea id="text-entry">text for select</textarea> 
</body> 
</html>