Web Analytics Made Easy -
StatCounter search this page script - CodingForum

Announcement

Collapse
No announcement yet.

search this page script

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • search this page script

    Hi,
    I've been trying to find a script to "search this page", but most seem quite old and don't seem to be supported in modern browsers.
    I have no knowledge of JS, but wondered whether this could be adapted in any way

    Code:
    <!-- EXAMPLE FORM OF FIND-IN-PAGE SEARCH USING SUBMIT (ALLOWING 'ENTER/RETURN' KEY PRESS EVENT) -->
    <div ID= "findform">
    <form name="form1" class="findform" 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>
    </div>
    <script>
    <!-- Hide from old browsers
    
    /******************************************
    * Find In Page Script -- Submitted/revised by Alan Koontz ([email protected])
    * Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
    * This notice must stay intact for use
    ******************************************/
    
    // revised by Alan Koontz -- May 2003
    
    var TRange = null;
    var dupeRange = null;
    var TestRange = null;
    var win = null;
    
    
    // SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
    // http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
    
    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);
    
    
    // GECKO REVISION
    
    var is_rev=0
    if (is_gecko) {
    temp = agt.split("rv:")
    is_rev = parseFloat(temp[1])
    }
    
    
    // USE THE FOLLOWING VARIABLE TO CONFIGURE FRAMES TO SEARCH
    // (SELF OR CHILD FRAME)
    
    // If you want to search another frame, change from "self" to
    // the name of the target frame:
    // e.g., var frametosearch = 'main'
    
    //var frametosearch = 'main';
    var frametosearch = self;
    
    
    function search(whichform, whichframe) {
    
    // TEST FOR IE5 FOR MAC (NO DOCUMENTATION)
    
    if (is_ie4up && is_mac) return;
    
    // TEST FOR NAV 6 (NO DOCUMENTATION)
    
    if (is_gecko && (is_rev <1)) return;
    
    // TEST FOR Opera (NO DOCUMENTATION)
    
    if (is_opera) return;
    
    // INITIALIZATIONS FOR FIND-IN-PAGE SEARCHES
    
    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; // i.e., no search string was entered
    
    var strFound;
    
    // NAVIGATOR 4 SPECIFIC CODE
    
    if(is_nav4 && (is_minor < 5)) {
    
    strFound=win.find(str); // case insensitive, forward search by default
    
    // There are 3 arguments available:
    // searchString: type string and it's the item to be searched
    // caseSensitive: boolean -- is search case sensitive?
    // backwards: boolean --should we also search backwards?
    // strFound=win.find(str, false, false) is the explicit
    // version of the above
    // The Mac version of Nav4 has wrapAround, but
    // cannot be specified in JS
    
    
    }
    
    // NAVIGATOR 7 and Mozilla rev 1+ SPECIFIC CODE (WILL NOT WORK WITH NAVIGATOR 6)
    
    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);
    
    // The following statement enables reversion of focus 
    // back to the search box after each search event 
    // allowing the user to press the ENTER key instead
    // of clicking the search button to continue search.
    // Note: tends to be buggy in Mozilla as of 1.3.1
    // (see www.mozilla.org) so is excluded from users 
    // of that browser.
    
    if (is_not_moz) whichform.findthis.focus();
    
    // There are 7 arguments available:
    // searchString: type string and it's the item to be searched
    // caseSensitive: boolean -- is search case sensitive?
    // backwards: boolean --should we also search backwards?
    // wrapAround: boolean -- should we wrap the search?
    // wholeWord: boolean: should we search only for whole words
    // searchInFrames: boolean -- should we search in frames?
    // showDialog: boolean -- should we show the Find Dialog?
    
    
    }
    
    if (is_ie4up) {
    
    // EXPLORER-SPECIFIC CODE revised 5/21/03
    
    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 ("String '"+str+"' not found!") // string not found
    
    
    }
    // -->
    </script>
    If not, does anybody of of any good alternatives.
    Many thanks
Working...
X