JavaScript为文本框内选中文字添加标签

使用以下原创代码请遵循协议.

 

ExpandedBlockStart.gif Default.aspx
  1  <% @ Page Language = " C# "   %>
  2 
  3  <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
  4 
  5  < html  xmlns ="http://www.w3.org/1999/xhtml" >
  6  < head  id ="Head1"  runat ="server" >
  7       < title ></ title >
  8       < script  type ="text/javascript" >
  9           var  start  =   0 ;
 10           var  end  =   0 ;
 11          
 12           function  add() {
 13               var  textBox  =  document.getElementById( " inputtext " );
 14               var  pre  =  textBox.value.substr( 0 , start);
 15               var  text  =  textBox.value.substr(start, end  -  start);
 16               var  post  =  textBox.value.substr(end);
 17 
 18               if  (text  !=   "" ) {
 19                  textBox.value  =  pre  +   " <h1> "   +  text  +   " </h1> "   +  post;
 20              }
 21          }
 22 
 23           function  remove() {
 24               var  z  =   0 ;
 25               var  textBox  =  document.getElementById( " inputtext " );
 26              
 27               var  pre  =  textBox.value.substr( 0 , start);
 28               var  _sh1  =  pre.lastIndexOf( " <h1> " );
 29              
 30               if  (_sh1  !=   - 1 ) {
 31                   if  (pre.lastIndexOf( " </h1> " <  _sh1) {
 32                      z ++ ;
 33                  }
 34              }
 35 
 36               var  text  =  textBox.value.substr(start, end  -  start);
 37              
 38               var  post  =  textBox.value.substr(end);
 39               var  _eh1  =  post.indexOf( " </h1> " );
 40 
 41               if  (_eh1  !=   - 1 ) {
 42                   if  (post.indexOf( " <h1> " >  _eh1  ||  post.indexOf( " <h1> " ==   - 1 ) {
 43                      z ++ ;
 44                  }
 45              }
 46 
 47               if  (z  ==   2 ) {
 48                  pre  =  pre.substr( 0 , _sh1)  +  pre.substr(_sh1  +   4 );
 49                  post  =  post.substr( 0 , _eh1)  +  post.substr(_eh1  +   5 );
 50              }
 51              
 52              textBox.value  =  pre  +  text  +  post;
 53          }
 54          
 55           function  savePos(textBox) {
 56               // FF
 57               if  ( typeof  (textBox.selectionStart)  ==   " number " ) {
 58                  start  =  textBox.selectionStart;
 59                  end  =  textBox.selectionEnd;
 60              }
 61               // IE
 62               else   if  (document.selection) {
 63                   var  range  =  document.selection.createRange();
 64                   if  (range.parentElement().id  ==  textBox.id) {
 65                       var  range_all  =  document.body.createTextRange();
 66                      range_all.moveToElementText(textBox);
 67 
 68                       for  (start  =   0 ; range_all.compareEndPoints( " StartToStart " , range)  <   0 ; start ++ ) {
 69                          range_all.moveStart( ' character ' 1 );
 70                      }
 71                                          
 72                       for  ( var  i  =   0 ; i  <=  start; i ++ ) {
 73                           if  (textBox.value.charAt(i)  ==   ' \n ' )
 74                              start ++ ;
 75                      }
 76                      
 77                       var  range_all  =  document.body.createTextRange();
 78                      range_all.moveToElementText(textBox);
 79 
 80                       for  (end  =   0 ; range_all.compareEndPoints( ' StartToEnd ' , range)  <   0 ; end ++ ) {
 81                          range_all.moveStart( ' character ' 1 );
 82                      } 
 83                      
 84                       for  ( var  i  =   0 ; i  <=  end; i ++ ) {
 85                           if  (textBox.value.charAt(i)  ==   ' \n ' )
 86                              end ++ ;
 87                      }
 88                  }
 89              }
 90              
 91              document.getElementById( " start " ).value  =  start;
 92              document.getElementById( " end " ).value  =  end;
 93          }
 94       </ script >
 95 
 96  </ head >
 97  < body >
 98       < form  id ="form1"  runat ="server" >
 99       < table  border ="1"  cellspacing ="0"  cellpadding ="0" >
100           < tr >
101               < td >
102                  start: 
103                   < input  type ="text"  id ="start"  size ="3"   />
104               </ td >
105               < td >
106                  end: 
107                   < input  type ="text"  id ="end"  size ="3"   />
108               </ td >
109           </ tr >
110           < tr >
111               < td  colspan ="2" >
112               < textarea  id ="inputtext"  
113                        onkeydown ="savePos(this)"  
114                        onkeyup ="savePos(this)"  
115                        onmousedown ="savePos(this)"
116                        onmouseup ="savePos(this)"  
117                        onfocus ="savePos(this)"  
118                        rows ="14"  cols ="50" > 1234567890 </ textarea >
119               </ td >
120           </ tr >
121           < tr >
122               < td >
123                   < input  type ="button"  onclick ="add()"  value ="Add h1"   />
124               </ td >
125               < td >
126                   < input  type ="button"  onclick ="remove()"  value ="Remove h1"   />
127               </ td >
128           </ tr >
129       </ table >
130       </ form >
131  </ body >
132  </ html >

 

 

 

转载于:https://www.cnblogs.com/yang_sq/archive/2010/08/26/1809282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值