在文本区域中显示突出显示的文本

时间:2019-04-11 07:19:52

标签: javascript jquery angularjs html5

我实现了一个代码,当我突出显示一个单词或短语时,它会添加到文本区域中,但是当我单击鼠标时,突出显示的文本值就会从文本区域中消失。

我正在使用Angularjs来实现。

This is my HTML & Angularjs code:


<div ng-app="myApp" ng-controller="caseCtrl">
<form name="aform" >
<textarea id="sel" rows="5" cols="20"></textarea>
</form>
 <div>
  <p>highlight the text to paste it in textbox.</p>
</div>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('caseCtrl', function($scope) {
 function getSelectionText() {
    var text = "";   
   if ((activeElTagName == "textarea")) {        
    } else if (window.getSelection) {
        text = window.getSelection().toString();
    }
  return text;
  }

  document.onclick = function() {
    document.getElementById("sel").value = getSelection();
       };
         });
    </script>

当我突出显示文本时,它将粘贴到文本框中,但是当我单击鼠标时,文本将从文本框中消失。建议我做什么?

1 个答案:

答案 0 :(得分:0)

对于您来说,当您单击某个位置时,所选文本不再存在,因此text的值将更新为""一个空白字符串。您必须为此检查。

您的功能应如下所示: 已编辑:

var text2 = "";
function getSelectionText() {
    var text = "";   
    if (window.getSelection) {
        text = window.getSelection().toString();
        console.log(text.length);
        if(text.length!=0) {
            text2 =text;
        }
    }
    return text2;
}

document.addEventListener("click", function() {
    document.getElementById("sel").value = getSelectionText();
});