2008년 9월 21일 일요일

[Javascript]페이지내의 단어검색하기 (파폭지원)

메모장에서 단어찾기와 비슷하다고 보시면 됩니다.

 


<script type="text/javascript">
<!--
var TRange = null;
var dupeRange = null;
var TestRange = null;
var win = null;

var nom = navigator.appName.toLowerCase();
var agt = navigator.userAgent.toLowerCase();
var is_major   = parseInt(navigator.appVersion);
var is_minor   = parseFloat(navigator.appVersion);
var is_ie      = (agt.indexOf("msie") != -1);
var is_ie4up   = (is_ie && (is_major >= 4));
var is_not_moz = (agt.indexOf('netscape')!=-1)
var is_nav     = (nom.indexOf('netscape')!=-1);
var is_nav4    = (is_nav && (is_major == 4));
var is_mac     = (agt.indexOf("mac")!=-1);
var is_gecko   = (agt.indexOf('gecko') != -1);
var is_opera   = (agt.indexOf("opera") != -1);

var is_rev=0
if (is_gecko) {
    temp = agt.split("rv:")
    is_rev = parseFloat(temp[1])
}

var frametosearch = self;

function search(whichform, whichframe) {
    if (is_ie4up && is_mac) return;
    if (is_gecko && (is_rev <1)) return;
    if (is_opera) return;
    if(whichform.findthis.value!=null && whichform.findthis.value!='') {
       str = whichform.findthis.value;
       win = whichframe;
       var frameval=false;
       if(win!=self) {

       frameval=true;  // this will enable Nav7 to search child frame
       win = parent.frames[whichframe];
    }
}

else
return;

var strFound;

if(is_nav4 && (is_minor < 5)) {
    strFound=win.find(str);
}

if (is_gecko && (is_rev >= 1)) {
    if(frameval!=false) win.focus(); // force search in specified child frame
    strFound=win.find(str, false, false, true, false, frameval, false);

    if (is_not_moz)  whichform.findthis.focus();
}

if (is_ie4up) {
  if (TRange!=null) {
     
   TestRange=win.document.body.createTextRange();

     

   if (dupeRange.inRange(TestRange)) {

   TRange.collapse(false);
   strFound=TRange.findText(str);
    if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = win.document.body.scrollTop + TRange.offsetTop;
        TRange.select();
        }
   }
 
   else {

     TRange=win.document.body.createTextRange();
     TRange.collapse(false);
     strFound=TRange.findText(str);
     if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = TRange.offsetTop;
        TRange.select();
        }

   }
  }
 
   if (TRange==null || strFound==0) {
   TRange=win.document.body.createTextRange();
   dupeRange = TRange.duplicate();
   strFound=TRange.findText(str);
    if (strFound) {
        //the following line added by Mike and Susan Keenan, 7 June 2003
        win.document.body.scrollTop = TRange.offsetTop;
        TRange.select();
        }
  
   }

}

  if (!strFound) alert ("찾으시는 '"+str+"' 에 대한 검색결과가 없습니다!") // string not found
       
}
// -->
</script>



<form name="form1" onSubmit="search(document.form1, frametosearch); return false"><input type="text" name="findthis" size="15" title="Press 'ALT s' after clicking submit to repeatedly search page"> <input type="submit" value="Find in Page" ACCESSKEY="s"></form>

 

이곳의 글들을 검색합니다.

자료출처 : http://www.blueb.co.kr/bbs.php?table=JS_17&query=view&uid=5&p=

댓글 없음:

댓글 쓰기