need help with a script please

  • 1
  • Question
  • Updated 9 years ago
  • Answered
Hi, can anyone help me? I have recently placed a script from dynamic drive on one of my pages, this script allows the reader to place a word in a box and the script is supposed to find the word, the problem I have is the facility only finds words at the TOP of my page and doesnt search anywhere else on the page itself, the developer said that you can change the script from ?? _self? to main, I dont understand this,I would like the search of the COMPLETE page not just the top, I know there are a lot of clever people here who can help me adjust this.this would be ideal for the readers on my site to find a specific poem ratehr than scroll all over the place searching for it. the script is called "find in page script" thanks for your help.
Photo of William

William

  • 294 Posts
  • 0 Reply Likes
  • hopeful

Posted 9 years ago

  • 1
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
Hello William

A very cool find! :)

Can you try clicking on "Find on Page"? When I did this on my test page, everytime I clicked on it, it went to the next spot that contained the word I submitted.
Photo of William

William

  • 294 Posts
  • 0 Reply Likes
hi mate, just tried it again, it doesnt move??
Photo of William

William

  • 294 Posts
  • 0 Reply Likes
ah, it works on IE mate but not on firefox???I went on to IE from firefox and it worked first time, weird eh?
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
I'm glad to hear that it works on IE. It should work on FF as well. I am currently using FF and it seems to be working for me. This may have to do with the earlier problems regarding the copying and pasting from an external source.
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
Hmmm.. there's a couple of different scripts for that "Find in Page". This is the one that I used:

<script>
<!-- Hide from old browsers

/******************************************
* Find In Page Script -- Submitted/revised by Alan Koontz (alankoontz@REMOVETHISyahoo.com)
* 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-devel...

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>

<!-- EXAMPLE FORM OF FIND-IN-PAGE SEARCH USING SUBMIT (ALLOWING 'ENTER/RETURN' KEY PRESS EVENT) -->
<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>

Give that one a try. Also, if you have not addressed the copy & paste text problem already present in your site, this may also interfere with your script working.
Photo of William

William

  • 294 Posts
  • 0 Reply Likes
I copied and pasted your script on to notepad then transferred it to the part of my page but it still doesnt work on ff mate??
Photo of William

William

  • 294 Posts
  • 0 Reply Likes
Tried it a couple of different ways and still doesnt work on ff mate, will try something tomorrow, goodnight and thank you.
Photo of Eyes Half Closed

Eyes Half Closed

  • 62 Posts
  • 17 Reply Likes
Thanks for the quick reply, look forward to hearing back from them.
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
Hello Eyes Half Closed,

I am not sure of a way to accomplish this. Can you please share your URL so that we can see how this is currently functioning?
Photo of Eyes Half Closed

Eyes Half Closed

  • 62 Posts
  • 17 Reply Likes
The page I am currently using the script on is:
http://paulmcdermottmusic.yolasite.co...

Try searching for something (e.g; 'Oh My Stars') and you'll see that the found
words appears below the screen (hidden by my floating search bar), and you have to scroll down a little further to see the result.

I can't put the floating bar at the top because it would block my menu. Plus I think it would look more professional if it automatically jumps down to the point that would mean the found word is at the top of the window.
(if that makes sense)
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
Thanks for sharing the URL.

I'll have to take a look into this but I cannot guarantee if I'll be able to come up with anything. Please leave this with me for a couple of days. Thanks for your patience.
Photo of Sanja

Sanja, Official Rep

  • 10698 Posts
  • 495 Reply Likes
Hi Eyes Half Closed,

I was hoping to come back with some good news. Unfortunately, I am not sure of how to adjust this. I'm sorry.