Newsgroup: it.comp.lang.javascript
Titolo: motore interno

Ciao ho scaricato un motore di ricerca interno... Ecco lo script
<script  LANGUAGE="JavaScript">
   <!-- Hide Script from Old Browsers
    Keyword = new Object();
    Descrip = new Object();
    Address = new Object();
// Keyword[0] = n  (where n is the number of keywords which can be searched
Keyword[0] =5
// Each entry is split into
// Keyword[n] = text (where text is the keyword of which the entry is to
// be searched by  (type Keywords in lowercase)
// Descrip[n] = text (where text is the description associated to this entry
// Address[n] = text (where text is the URL associated to the entry
//  n is the entry number.
Keyword[1] = "editor"
Descrip[1] = "editor html"
Address[1] = "2html.htm"
Keyword[2] = "editor"
Descrip[2] = "editor css"
Address[2] = "2css.htm"
Keyword[3] = "java"
Descrip[3] = "effetti speciali con java"
Address[3] = "2java.htm"
Keyword[4] = "javascript"
Descrip[4] = "effetti speciali con javascript"
Address[4] = "2js.htm"
    function checkDatabase() {
      var Found = false
      var Item = document.forms.ricerca.searchfor.value.toLowerCase();
stats='toolbar=no,location=no,directories=no,status=no,menubar=no,height=300
,width=300,'
stats += 'scrollbars=yes,resizable=yes'
MsgBox = window.open ("","msgWindow",stats)
MsgBox.opener = window;
MsgBox.opener.name
 = "opener";
MsgBox.document.write("<head><title>Risultati della
ricerca</title></head>");
MsgBox.document.write ("<body bgcolor=#ffffff text=#000099 link=green
vlink=orange alink=yellow><CENTER><H3><font face=Verdana>Risultati della
ricerca</H3>")
MsgBox.document.write ("<font size=3><center>Per la parola chiave:<br><B>
"+Item+"</B></center><hr width=50%></font></CENTER>");
        for (var i=1; i <= Keyword[0]; i++) {
        if(Item == Keyword[i]) {
          Found = true;
         MsgBox.document.write ("<li><font face=arial><font
size=2>"+Descrip[i]+"<BR><A HREF="+Address[i]+" target='opener'>questo il
link per richiamare la pagina</A></font></font>")
        }
      }
      if(!Found)
MsgBox.document.write ("<font color=red><H4>Nessuna corrispondenza trovata,
riprova con altra parola o sinonimo</H4></font>")
// Leave the line below intact if you want to legally use this script
MsgBox.document.write ("<FORM><CENTER>")
MsgBox.document.write ("<font size=2><font color=arial><INPUT type='button'
value='Chiudi' onClick = 'self.close()'></font></font>")
MsgBox.document.write ("</FORM>")
MsgBox.document.write ("<font face=arial size=1 color=black>Originally
created by Adam Allen <br>© 1997 All Rights Reserved</font></CENTER>")
// There must be my notice above if you are to use this script legally.
// It took many hours work, fairs is fair, I just want that little line in
// and you get a fully working Search ENGINE, for FREE, on your site
// In Java Scripts as well, and not crap JAVA!
// Also a copyright notice MUST appear with the form.
     }
/* prelevato su web-link: 
http://web-link.it
 */
    //    -->
</script>
Ok. Il mio sito è strutturato su deu frame. I risultati dati dal motore
compaiono in una nuova finestra, diversa da quella dove è inserito il form
di ricerca. Tuttavia i link presenti in essa dovrebbero aprirsi nella pagina
principale del sito, dove c'è il form, mentre invece si aprono in una nuova
finestra. Perchè? Ho modificato l'attibuto target='opener' con
target='principale' che è il nome del frame dove devono aprirsi i link. Come
faccio? Grazie

Cosi su due piedi dovresti cambiare il codice. Se quell'opener (Come sembra)
e solo il nome della finestra puoi cambiarlo quanto vuoi ma non andra mai
bene, perche lui ti apre una nuova finestra e quindi i nomi dei tuoi frame
sulla finestra precedente vanno persi.
Dovresti modificare il link mettendo qualcosa del tipo
<a href="Javascript:window.opener.nomeframe.location.href='+ ecc ecc
Pero non sono sicuro della sintassi del window.opener, prova ad andare a
riguardarla!
Ciao
--
Alessandro
UGIdotNET - 
http://www.ugidotnet.org