当前页面: 开发资料首页 → Javascript 专题 → 实现textarea内字符串选择查询替换功能
摘要: 实现textarea内字符串选择查询替换功能
-----------------------------------自动替换版-----------------------------------------
HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<head>
function fnSearch() {
fm1.txtarea1.focus();
oRange = fm1.txtarea1.createTextRange();
searchtxt(1);
}
function searchtxt(n){
var v1;
var v2;
var txtr;
var blnS;
window.clearInterval(objTimer1);
window.clearInterval(objTimer2);
v1 = fm1.txtarea1.value;
v2 = fm1.txtarea2.value;
v3 = fm1.txtarea3.value;
if( n == 1) {
if (oRange != null) {
oRange.findText(v2);
if (oRange.findText(v2) == true){
//sBookMark = oRange.getBookmark();
oRange.select();
oRange.scrollIntoView();
objTimer2 = window.setInterval("searchtxt(2)",1000);
}
else{
objTimer = window.setInterval("searchtxt(3)",1000);
}
}
staus = 2 ;
}
else if(n==2) {
oRange.text = v3;
staus = 1;
objTimer1 = window.setInterval("searchtxt(1)",1000);
}
else if(n==3) {
staus = 3 ;
window.clearInterval(objTimer);
window.clearInterval(objTimer1);
window.clearInterval(objTimer2);
}
}
//
</script>
</head>
<body>
<form METHOD=POST name="fm1">
<textarea NAME="txtarea1" ROWS="20" COLS="50">
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
</textarea>
<textarea NAME="txtarea2" ROWS="20" COLS="50"> will be </textarea>
<textarea NAME="txtarea3" ROWS="20" COLS="50"> has been </textarea>
<input type="button" value="search" onclick="fnSearch()">
</form>
</body>
--------------------------------手动改进版----------------------------------------
HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<head>
var strBeReplaced;
var strReplace;
strBeReplaced = fm1.txtarea2.value;
strReplace = fm1.txtarea3.value;
fnNext();
fm1.txtarea1.focus();
oRange = fm1.txtarea1.createTextRange(); //Create a textRange for the Textarea
// Find the text by findtext method
for (i=1; oRange.findText(strBeReplaced)!=false; i++) {
if(i==intCount){
oRange.select(); // select the finded text
oRange.scrollIntoView(); // scroll the page and set the text Into View
break;
}
oRange.collapse(false); //
}
}
//==============================================
//function : fnSearch()
//comment : set the flag to the next textrange
//param : none
//return : none
//author : Fantiny
//Date : 10/21/2005
//==============================================
function fnNext(){
if (intCount > 0 && intCount < intTotalCount){
intCount = intCount + 1;
}
else{
intCount = 1 ;
}
}
//==============================================
//function : init()
//comment : initialize at page onload to get the count
//param : none
//return : none
//author : Fantiny
//Date : 10/21/2005
//==============================================
function init(){
var oRange ;
var strBeRepalced;
oRange = fm1.txtarea1.createTextRange(); //Create a textRange for the Textarea
strBeReplaced = fm1.txtarea2.value;
for (i=0; oRange.findText(strBeReplaced)!=false; i++) {
oRange.collapse(false); // Moves the insertion point to the end of the text range.
}
intTotalCount = i ;
}
//==============================================
//function : fnReplace()
//comment : replace the text of the selected textrange
//param : none
//return : none
//author : Fantiny
//Date : 10/21/2005
//==============================================
function fnReplace(){
var strReplace;
strReplace = fm1.txtarea3.value;
// if the textrange is exist, replace the text
if(oRange!= null && typeof(oRange)=="object" && intTotalCount > 0){
oRange.text = strReplace;
intCount = intCount - 1;
intTotalCount = intTotalCount - 1;
oRange = null;
}
}
//
</script>
</head>
<body onload="init()">
<form METHOD=POST name="fm1">
<textarea NAME="txtarea1" ROWS="20" COLS="50">
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
this is the original text, and this is the string will be repalced.
</textarea>
<textarea NAME="txtarea2" ROWS="20" COLS="50"> will be </textarea>
<textarea NAME="txtarea3" ROWS="20" COLS="50"> has been </textarea>
<input type="button" value="search" onclick="fnSearch()">
<input type="button" value="Replace" onclick="fnReplace()">
</form>
</body>