使用以下原创代码请遵循协议.
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 >
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 >