Click to See Complete Forum and Search --> : search in large page


vinsa
03-16-2003, 02:41 AM
Hello,
first sorry for my English. I need from
javascript. My web page is to large (to many info).
Is possible searching in the page with keywords
and if the page contain the word, the script to
show the word in blue colour. This will help my
user. This script must work like function of
Internet Explorer from the mainmenu -> Etid -> Find (on This Page)...
Type the keyword in a textarea and then click the button.

Thank you!

rliles
03-16-2003, 04:34 AM
Here is a script from:

http://javascript.internet.com/messages/find-in-page.html

that will do exactly what you need.


<!-- TWO STEPS TO INSTALL FIND IN PAGE:

1. Copy the coding into the HEAD of your HTML document
2. Add the last code into the BODY of your HTML document -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document -->

<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Mike Hall (MHall75819@aol.com) -->
<!-- Web Site: http://members.aol.com/MHall75819 -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var NS4 = (document.layers);
var IE4 = (document.all);

var win = this;
var n = 0;

function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0) alert(str + " was not found on this page.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}
else
alert(str + " was not found on this page.");
}
}
return false;
}
// End -->
</script>
</HEAD>

<!-- STEP TWO: Copy this code into the BODY of your HTML document -->

<BODY>

<form name=search onSubmit="return findInPage(this.string.value);">
Find in Page
<input name=string type=text size=15 onChange="n = 0;">
</form>

<p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!-- Script Size: 1.54 KB -->