Buscador de palabras dentro de un layer

fialza
22 de Septiembre del 2005
Hola a todos.

Estoy realizando un còdigo para la busqueda de palabras dentro de una pagina web, algo similar a lo que se hace con la opcion buscar palabras de cualquier navegador. El problema radica en que quiero limitar esa busqueda solamente al contenido de un layer u objeto con etiqueta div.
Si alguien tiene una ideas, le agradecria que me la comunicase.
Por ahora tengo el siguiente codigo

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<HTML><HEAD><TITLE>Searching for text: JavaScript</TITLE>
<META http-equiv=Content-Type content=\"text/html; charset=windows-1252\">

<BODY text=#000000 vLink=#660099 link=#0000ff bgColor=#ffffff
onload=if(top.changeAD)top.changeAD()>
<A name=top></A>
<H3><FONT face=Verdana,Arial,Helvetica,sans-serif color=#000099>Searching for
text hola</FONT></H3>
<SCRIPT language=JavaScript>
<!--
if (
parent.location==self.location
&& (\"\"+self.location).toLowerCase().indexOf(\".chm\")==-1
&& (\"\"+self.location).toLowerCase().indexOf(\"~hh\")==-1
)
document.writeln (\\'<small><a href=\"index.htm\"><img border=0 alt=\"Table of Contents\" width=17 height=15 src=\"../hi-icons/82.gif\">Table of Contents</a></small>\\');
//-->
</SCRIPT>


<FORM name=\"f1\" >
<input value=\"hola\" name=\"t1\" id=\"t12\" >
<INPUT type=button value=\"hola\" onClick=\"if(document.f1.t1.value!=null && document.f1.t1.value!=\\'\\') document.f1.t1.disabled=true;findString(document.f1.t1.value);document.f1.t1.disabled=false;return false;\">
<input type=\"button\" name=\"Submit\" value=\"Botón\" onClick=\"document.f1.inicio.focus();\">
<div id=\"contenido\">
<p>
<input name=\"inicio\" type=\"text\" size=\"1\">
</p>
<p>
<div id=\"contenido\">
hola este es un pequeño ejemplo de como funcionan las cosas hola este es
un pequeño ejemplo de como funcionan las cosas hola este es un pequeño ejemplo
de como funcionan las cosas hola este es un pequeño ejemplo de como funcionan
las cosas hola este es un pequeño ejemplo de como funcionan las cosas hola
este es un pequeño ejemplo de como funcionan las cosas hola este es un pequeño
ejemplo de como funcionan las cosas hola este es un pequeño ejemplo de como
funcionan las cosas hola este es un pequeño ejemplo de como funcionan las
cosas
</div>
</p>
<p>
<input name=\"final\" type=\"text\" size=\"1\">
</p>
</div>
</FORM>
<SCRIPT language=JavaScript>
<!--
var TRange=null

function findString (str)
{

//document.f1.inicio.value=str;
//document.f1.inicio.focus()

if (parseInt(navigator.appVersion)<4) return;
var strFound;
if (navigator.appName==\"Netscape\") {

// NAVIGATOR-SPECIFIC CODE

strFound=self.find(str);
if (!strFound) {
strFound=self.find(str,0,1)
while (self.find(str,0,1)) continue
}
}

if (navigator.appName.indexOf(\"Microsoft\")!=-1)
{

// EXPLORER-SPECIFIC CODE

if (TRange!=null) {
TRange.collapse(false)
strFound=TRange.findText(str)
if (strFound) TRange.select()
}
if (TRange==null || strFound==0) {
TRange=self.document.body.createTextRange()


strFound=TRange.findText(str)
if (strFound) {TRange.select();}
}
}
if (!strFound) alert (\"String \\'\"+str+\"\\' not found!\")
}
//-->
</SCRIPT>

Drocher
22 de Septiembre del 2005
La verdad es que me he vuelto loco para intentar encontrar una solución...
Prueba con TRange.parentElement().id=="contenido"

Por ejemplo:
// EXPLORER-SPECIFIC CODE

if (TRange!=null) {
TRange.collapse(false)
strFound=TRange.findText(str)

if (strFound && TRange.parentElement().id=="contenido") TRange.select()
}
if (TRange==null || strFound==0) {
TRange=TRange=self.document.body.createTextRange();


strFound=TRange.findText(str)
alert(TRange.parentElement().id)
if (strFound && TRange.parentElement().id=="contenido") {
TRange.select();}
}
}

Espero te sea útil.

Un saludo