首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JAVAScript中,有一个textarea中例如输入AAA;BBB;CCC;DDD;当鼠标移动到这个字符上时

2013-07-04 
JAVAScript中,有一个textarea中比如输入AAABBBCCCDDD当鼠标移动到这个字符上时;比如鼠标现在在AAA在A

JAVAScript中,有一个textarea中比如输入AAA;BBB;CCC;DDD;当鼠标移动到这个字符上时;
比如鼠标现在在AAA;在AAA;上时,鼠标指针本来是那种像大写 I 这种的要输入的指针,但是现在要判断这个字符串是否有分号结尾,如有的话,那么鼠标点击到这个字符串时,变为那个全选的图标,应该是默认。求解。 JavaScript 鼠标 指针
[解决办法]

引用:
15L  bug好多。而且都写在了点击事件了。鼠标点击才会变。只支持火狐,我是IE8





<textarea rows="6" id="txtBox" cols="60"    onclick ="ShowFos()">
AAAAAAAAAAAAAA;BBBBBBBBBBBBBBBBBBBBBBBBBBBB;CCCCCCCCCCCCCCCCCCCCCCCCCCC;DDDDDDDDDDDDDDDDDDDDDDDDDD;
   </textarea>
   <script type="text/javascript">
       function ShowFos() {

           var obj = document.getElementById("txtBox");
           var val = document.getElementById("txtBox").value;
           var t1 = val.substr(0, getCursorPosition(obj).start);
           var t2 = val.substr(getCursorPosition(obj).start, val.length);
           var start = t1.length - (t1.length - t1.lastIndexOf(";"));
           end = t1.length + t2.indexOf(";");
           if (end > 0) {
               obj.style.cursor = "pointer";
               if (obj.setSelectionRange) {
                   obj.setSelectionRange(start,end);
               } else {
                   var range = obj.createTextRange();


                   range.collapse(true);
                   range.moveStart('character', start);
                   range.moveEnd('character', end-start);
                   range.select();
               } 
           }
           else {
               obj.style.cursor = "inherit";

           }
       }

       function getCursorPosition(textarea) {
           var rangeData = { text: "", start: 0, end: 0 };
           textarea.focus();
           if (textarea.setSelectionRange) { // W3C
               rangeData.start = textarea.selectionStart;
               rangeData.end = textarea.selectionEnd;
               rangeData.text = (rangeData.start != rangeData.end) ? textarea.value.substring(rangeData.start, rangeData.end) : "";
           } else if (document.selection) { // IE
               var i,
            oS = document.selection.createRange(),
               // Don't: oR = textarea.createTextRange()
            oR = document.body.createTextRange();
               oR.moveToElementText(textarea);

               rangeData.text = oS.text;


               rangeData.bookmark = oS.getBookmark();

               // object.moveStart(sUnit [, iCount])
               // Return Value: Integer that returns the number of units moved.
               for (i = 0; oR.compareEndPoints('StartToStart', oS) < 0 && oS.moveStart("character", -1) !== 0; i++) {
                   // Why? You can alert(textarea.value.length)
                   if (textarea.value.charAt(i) == '\n') {
                       i++;
                   }
               }
               rangeData.start = i;
               rangeData.end = rangeData.text.length + rangeData.start;
           }

           return rangeData;
       }
   </script>
 


[解决办法]

咱们的回答都只能实现在焦点在textarea内(鼠标点击、keyup等等,总之就是要焦点)的选中。

而楼主要的  说白了 ,楼主要的效果就是QQ邮箱里面发送邮件填写多个收件人的那种效果,

也就是我18楼回答的, 那相当于一个所见即所得的编辑器

热点排行