设计学院-ui163 致力于网页标准 网页设计 web标准与ui设计。

实现textarea内字符串选择查询替换功能

上一篇上一篇 | 下一篇下一篇发表时间:2007-11-3 14:27:21

实现textarea内字符串选择查询替换功能



以下代码片段:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var staus ;
var oRange;
var objTimer;
var objTimer1;
var objTimer2;
var sBookMark;
<!--
function selectall(objAll,OBJSingle){
alert(objAll.checked);
for (var i=0;i<OBJSingle.length;i++){
if (objAll.checked){
for( objs in OBJSingle){
alert(objs.value);
objs.checked=true;
}
}
else{
OBJSingle.checked=false;
}
}
}

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>

--------------------------------手动改进版----------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
var oRange;     // save the current textrange  
var intCount = 0;   // this pos of current textrange in the total count
var intTotalCount = 0;  // total count
<!--
//==============================================
//function : fnSearch()
//comment  : Search the text
//param    : none
//return   : none
//author   : Fantiny
//Date     : 10/21/2005
//==============================================
function fnSearch() {

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 www.knowsky.com
//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>
</HTML>

[本日志由 ui163 于 2007-11-3 14:27:21 编辑]
上一篇上一篇:关于DOM事件模型的两件事
下一篇下一篇:限制图片上传长宽的JavaScript代码
文章来自:设计学院
收藏到网摘: 收藏到QQ书签
Tags:

相关内容

网站建设导航→

相关内容

版权隐私 ┊ 免责声明  ┊ 友情链接 ┊ 网站地图  ┊ 联系我们

Copyrights©2006 UI163.com All Rights Reserved 2007

 豫ICP备07501346号