Questa è la pagina principale che contiene i frame:
=================
<html>
<head>
<title>Cerca nel sito</title>
</head>
<frameset rows="80,*" border="0">
<frame src="nav.html" name="alto">
<frame src="help.html" name="bot" target="_top">
</frameset>
</frameset>
<body>
</body>
</html>
====================
Nel frame di sopra va il codice vero e proprio e va richiamato il file .js esterno:
======================
<script language="javascript" src="../_files/db.js"></script>
<script language="javascript">
var tutti = "_and"
var alcuni = "_or"
var tipo_ricerca = ""
var s = 0
var o = 10
var copia_risultati = new Array()
var doc = parent.frames[2].document
function filtro (query) {
if (query.charAt(0) == "+")
{
query = query.substring (1, query.length)
tipo_ricerca = tutti
}
else
{
tipo_ricerca = alcuni
}
while (query.charAt(0) == " ") query = query.substring(1, query.length)
document.forms[0]._query.value = query
while (query.charAt(query.length - 1) == " ") query = query.substring(0, query.length - 1)
document.forms[0]._query.value = query
formatta_stringa (query)
}
function formatta_stringa (query) {
var stringa_formata = query.split (" ")
if (tipo_ricerca == "_or")
cerca_or (stringa_formata)
else
cerca_and (stringa_formata)
}
function cerca_or (stringa_formata) {
var matrix = new Array()
for (i = 0; i < db.length; i++)
{
var stringaConfronto = db[i].toUpperCase()
var stringaUtile = stringaConfronto.substring(0, stringaConfronto.lastIndexOf("|"))
for (j = 0; j < stringa_formata.length; j++)
{
var stringaUtente = stringa_formata[j].toUpperCase()
if (stringaUtile.indexOf(stringaUtente) != -1)
{
matrix[matrix.length] = db[i]
break
}
}
}
verifica(matrix)
}
function cerca_and (stringa_formata) {
var matrix = new Array()
for (i = 0; i < db.length; i++)
{
var coincidenza = true
var stringaConfronto = db[i].toUpperCase()
var stringaUtile = stringaConfronto.substring(0, stringaConfronto.lastIndexOf("|"))
for (j = 0; j < stringa_formata.length; j++)
{
var stringaUtente = stringa_formata[j].toUpperCase()
if (stringaUtile.indexOf(stringaUtente) == -1)
coincidenza = false
}
if (coincidenza)
matrix[matrix.length] = db[i]
}
verifica(matrix)
}
function verifica (matrix) {
if (matrix.length == 0)
{
doc.open()
doc.write('<html><head><style type="text/css">body{ scrollbar-face-color: #FFFFFF; scrollbar-arrow-color: #3300FF; scrollbar-3dlight-color: #FFFFFF; scrollbar-base-color: #66CCFF; scollbar-darkshadow-color: #3300FF;}</style></head><body ALINK="#330066" VLINK="#CC0000" TEXT="#000000" LINK="#FF0000" style="background-color: #66CCFF"><hr size="1" noshade color="#FFFF00">')
doc.write('<font face="Verdana, Arial, sans" size="3"><div align="center">Spiacente, non ho trovato elementi corrispondenti</div></font><hr size="1" noshade color="#FFFF00"></body></html>')
doc.close()
}
else
{
array_risultati = matrix.sort()
stampa_risultati(array_risultati, s, o)
}
}
function stampa_risultati(array_risultati, s, o) {
var limite = (array_risultati.length < s + o) ? array_risultati.length : (s + o)
doc.open()
doc.write('<html><head><style type="text/css">body{ scrollbar-face-color: #FFFFFF; scrollbar-arrow-color: #3300FF; scrollbar-3dlight-color: #FFFFFF; scrollbar-base-color: #66CCFF; scollbar-darkshadow-color: #3300FF;}</style><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><base TARGET="_top"></head><body ALINK="#330066" VLINK="#CC0000" TEXT="#000000" LINK="#FF0000" style="background-color: #66CCFF">' + '<table width="90%" border="0">' + '<tr><td><hr size="1" noshade color="#FFFF00"><tr><td><font face="Verdana, Arial, sans" size="2">Chiave di ricerca: ' + '' + parent.frames[0].document.forms[0]._query.value + '' + '
Risultati:' + '' + ' da ' + (s + 1) + ' a ' + limite + ' di ' + array_risultati.length + '</font>' + '<hr size="1" noshade color="FFFF00">')
for (i = s; i < limite; i++)
{
var splitta = array_risultati[i].split("|")
doc.write('<tr><td><dl><font face="Verdana, Arial, sans" size="2">' + splitta[0].link(splitta[2]) + '<dd>' + splitta[1] + '</font>')
}
doc.write('<tr><td><hr size="1" noshade color="#FFFF00"></table>')
visualizza_pulsanti (array_risultati, s, o)
doc.write('</body></html>')
doc.close()
}
function visualizza_pulsanti(array_risultati, s, o) {
doc.write('<form><div align="center">')
if (s > 0)
{
doc.writeln('<input TYPE="image" value="Precedenti" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s - o) + ', ' + o + ')" SRC="03.gif">')
}
if (s + o < array_risultati.length)
{
doc.writeln('<input type="image" value="Successivi" onClick="parent.frames[0].stampa_risultati(parent.frames[0].array_risultati, ' + (s + o) + ', ' + o + ')" SRC="01.gif">')
}
doc.write('</div></form>')
}
</script>
==================
Attenzione però il codice contiene delle personalizzazioni che hoinserito per adattarlo allo stile del mio sito; le due immagini che si vedono se i risultati non vanno in una pagina, sono due frecce che provvedo ad inserire nel forum.
Nel tag body di questa pagina scrivi questo:
====================
<form name ="cerca" onSubmit="filtro(document.forms[0].elements[0].value); return false">
<div align="center">
<table width="550" border="0">
<tr>
<td width="500"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CERCA
NEL SITO</font><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"></font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="text" name="_query" size="30">
</font></td>
<td width="50">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">HELP</font></div>
</td>
</tr>
</table>
</div>
</form>
==================
Questa è l'altra pagina contenuta nel frame in basso:
=================
<div align="center">
<table width="550" border="0">
<tr>
<td colspan="3" valign="top" height="0">
<hr noshade size="1">
</td>
</tr>
<tr>
<td height="13" valign="top" width="49%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FF0000">per
cercare almeno una parola...</font></td>
<td width="2%" valign="top" height="13"></td>
<td width="49%" valign="top" height="13"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#F0000">per
cercare esattamente più parole...</font></td>
</tr>
<tr>
<td colspan="3" valign="top" height="0">
<div align="center">
<hr align="center" size="1" noshade>
</div>
<div align="center"></div>
</td>
</tr>
<tr>
<td valign="top" width="49%">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">...inserite
le parole da cercare, senza segni di interpunzione, nella casella CERCA
NEL NOSTRO DATABASE, poi premete INVIO.
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Per
esempio, digitando:
shopping televisori
verranno visualizzati tutti i record che contengono almeno uno dei due
termini.</font></p>
</td>
<td valign="top" width="2%"></td>
<td valign="top" width="49%">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">...digitate
le parole da cercare, senza segni di interpunzione, nella casella CERCA
NEL NOSTRO DATABASE facendole precedere dal segno "+", poi
premete INVIO.</font></p>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">Per esempio,
digitando:
+ shopping televisori
verranno visualizzati tutti i record che contengono entrambi i termini.</font></p>
</td>
</tr>
<tr>
<td colspan="3" valign="top" height="10">
<div align="center">
<hr noshade size="1">
</div>
</td>
</tr>
<tr>
<td colspan="3" valign="top" height="2">
<div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FF0000" STYLE="font-variant: small-caps">Attenzione: maiuscole e minuscole non influiscono sulla ricerca.</font></div>
</td>
</tr>
<tr>
<td colspan="3" valign="top" height="12">
<hr align="center" noshade size="1">
</td>
</tr>
</table>
</div>
=====================
Come puoi vedere questa pagina contiene solo una descrizione.