[JS] Wyszukiwarka w Java Script

0

Robię stronę offline’ową i bardzo bym chciał żeby była na niej wyszukiwarka, a jak wiadomo nie każdy ma zainstalowany serwer PHP, ASP czy CGI a tym bardziej MySQL’a. Więc najlepszym rozwiązaniem pozostał Java Script. Jeśli ktoś jest w posiadaniu wyszukiwarki w Java Scripcie był bym bardzo wdzięczny za kod.

Z góry dziękuje i pozdrawiam.

0

jak masz szukac na wielu stronach to sobie odpusc... jak na jednej to moze cos by sie wykombinowalo chociaz tez watpie...

0

Jasne, ze sie da na jednej stronie... ale tak samo dziala Ctrl+F w przegladarce ;)

0

Obejrzyj sobie pomoc do photoshopa. O ile pamiętam, to tam było coś podobnego.

0

Widziałem też taką wyszukiwarkę w SampleBrowserze z DirectX9 SDK...

0

jak masz szukac na wielu stronach to sobie odpusc... jak na jednej to moze cos by sie wykombinowalo chociaz tez watpie...

A widzisz Bags, wszystko się da :-P ;-)

Robię stronę offline’ową i bardzo bym chciał żeby była na niej wyszukiwarka, a jak wiadomo nie każdy ma zainstalowany serwer PHP, ASP czy CGI a tym bardziej MySQL’a. Więc najlepszym rozwiązaniem pozostał Java Script. Jeśli ktoś jest w posiadaniu wyszukiwarki w Java Scripcie był bym bardzo wdzięczny za kod.

Z góry dziękuje i pozdrawiam.

Wszyscy piszą, że się da, albo gdzieś widzieli a ja ci podam kod :-D ;p

formularz do wyszukiwania


w <head>

<script language="JavaScript">
var blad = 'tak';
</script>
<script language="JavaScript" src="dane.js">
</script>
<script language="JavaScript" src="engine.js">

</script>

w <body>

           <form name="find">
              <span style="text-align: center;">
                <input type=text size=14 name="what" style="background-color: black; color: white; font-family: Verdana, Tahoma, Arial; font-size: 9pt; border: 1px solid white">
              </span>

              <input type=checkbox name=opc_1 value="autor" checked>
              <font face="Verdana" size="-2"><span style="font-size: 7pt;">wg 
              naz</span>wy działu</span><br>

              <input type=checkbox name=opc_2 value="tytul">
              <font size="-2" face="Verdana"><span style="font-size: 7pt;">wg 
              tytułów</span> </span> 
            </form>

<a onclick="if (blad == 'nie') {random_art(blad);} else {error('Brak pliku z danymi [dane.js].');}" style="cursor: hand;" onmouseover="img_on('rand_art');" onmouseout="img_off('rand_art');"><img src="img/rand_art_off.gif" width=100 height=22 border=0 name="rand_art"></a><br>
              <br>
              <a onclick="if (blad == 'nie') {check(blad);} else {error('Brak pliku z danymi [dane.js].');}" onmouseover="img_on('szukaj');" onmouseout="img_off('szukaj');" style="cursor: hand;"><img src="img/szukaj_off.gif" width=120 height=28 name=szukaj border=0></a>

plik dane.js

var blad = 'nie';
function rekord(autor, tytul, sciezka)
{
this.autor = autor;
this.tytul = tytul;
this.sciezka = sciezka;
}
dane = new Array();
dane[1] = new rekord("Linki","Strona najlepszego pisma na swiecie","www.cdaction.com.pl");
dane[2] = new rekord("Newsy","Layout strefy WWW dla CDAction","index.htm");[/code]

plik engine.js

//sprawdza czy zostało podane hasło do wyszukania
function check(ok)
{
if (ok == 'nie')
{
if (document.find.what.value != "")
    {
    znajdz();
    } else {
    error('Przykro nam, logicznie rzecz ujmujac nie podales poszukiwanego przez ciebie wyrazenia. Bidulka nie wie, jak to zrobic? Kliknij lewym przyciskiem myszy na ten czarny prostokat z bialym obramowaniem (oczywiscie najpierw musisz nacisnac lewym przyciskiem myszy OK w tym okienku dialogowym). Teraz mozesz wpisac wyrazenie. Pomocna do tego celu moze byc klawiatura. Kiedy skonczysz, zaznacz, czy poszukujesz autora tekstu/newsa/pliku (lewym przyciskiem myszy na jednym z kwadratow pod czarnym prostokatem). Teraz nacisnij lewym przyciskiem myszy przycisk Szukaj. Powinien zmienic nieco swój wyglad. Teraz chwilke poczekaj. Wyswietli sie menu z wynikami wyszukiwania. Teraz kliknij lewym przyciskiem myszy na tytul artykulu (ten tekst po lewej stronie tabelki). Jezeli chcesz wrocic na poprzednia strone kliknij na napis "Powrót do poprzedniej strony" (niesamowite). To tyle. To byl komunikat wyszukiwarkowej pomocy technicznej. W razie dlaszych pytan dzwon pod numer 0700 774884 (4,22 zl/min +VAT, Legion Polska) lub napisz e-maila (adres: [email protected]). Korzystajcie z naszych uslug czesciej (bo aktualnie robicie to stanowczo za rzadko)! ');
    }
}
}

//Główna funkcja engine'u AMSE
wynik = new Array();

function znajdz()//bylo (tryb)
{
y=1;
haslo_orginal = document.find.what.value;
haslo = haslo_orginal.toLowerCase();
//rozdzielaenia na autora i 
for (x = 1; x <= (dane.length-1); x ++)
    {
    if ((document.find.opc_1.checked == true)&&(document.find.opc_2.checked == false))
       {
       //wyszukiwanie wg autorow artow
       if (dane[x].autor.toLowerCase().indexOf(haslo) != -1)
          {
          wynik[y] = x;
          y++;
          }    
       }
    if ((document.find.opc_1.checked == false)&&(document.find.opc_2.checked == true))
       {
       //wyszukiwanie wg tytulow artow
       if (dane[x].tytul.toLowerCase().indexOf(haslo) != -1)
          {
          wynik[y] = x;
          y++;
          }
       }
    if ((document.find.opc_1.checked == true)&&(document.find.opc_2.checked == true))
       {
       //wyszukiwanie wg tytulow artow i autorow
       text = dane[x].autor;
       text = text.toLowerCase(); 
       text2 = dane[x].tytul;
       text2 = text2.toLowerCase();
       if ((text.indexOf(haslo) != -1) || (text2.indexOf(haslo) != -1))
          {
          wynik[y] = x;
          y++;
          }
       }
    }
draw_results(wynik);
}

//wyswietla strone zawierajaca wyniki wyszukiwania
bgcol = new Array();
bgcol[1] = "#b2c5ec";
bgcol[3] = "#8ba8e2";
swcol = 1;

function draw_results(tablica)
{
document.clear();
//poczatek
header = '<html><head><title>Nokia Game - wyniki wyszukiwania</title><link rel=stylesheet href="style.css" type="text/css"></head>';
header +='<BODY bgcolor=#FFFFCC text=black link=lightred alink-ivory vlink=darkbrown><a name="gora"><TABLE width=780 border=0 cellpadding=0 cellspacing=0 align=center cols=4><tr><td width=25><td width=184><td width=543><td width=28></tr><tr><td colspan=4 width=780></td></tr><tr><td colspan=4 width=780></tr><tr>';
header +='<td width=543><table border=0 cellspacing=0 cellpadding=1 align=center><tr><td class=title1><table border=0 cellspacing=0 cellpadding=0 align=center><tr><td class=title2> ..:: Wyniki wyszukiwania ::.. </td></table></table>';
header +='< hr noshade color="#658bd9"><br>';
header +='<table width=543 border=0 cellpadding=3 align=center>';
document.write(header);

for (x = 1; x <= (tablica.length-1); x++)
    {
    swcol = swcol * -1;
    bgc = bgcol[2+swcol];
    document.write('<tr><td style="background-color: ' + bgc + '"><a id=search href="' + dane[tablica[x]].sciezka + '"> ' + dane[tablica[x]].tytul + '</a></td><td style="background-color: ' + bgc + '"><b>' + dane[tablica[x]].autor + '</b></td></tr>');
    }
if (tablica.length == 0)
   {
   document.write('Przykro nam. Wyszukiwarka nie odnalazla w serwisie zadnego pliku, spelniajacego kryteria. Sprawdz czy wpisane wyrazenie jest poprawne i spróbuj ponownie.');
   }

//zakonczenie
ending = '</table>';
document.write(ending);

document.write('<br><br><a href="javascript:history.back();"><< Powrót do poprzedniej strony</a>');

ending ='</td></tr><tr><td colspan=4 width=780></td></tr></TABLE><map name=cda><area shape=rect coords="681, 24, 780, 64" href="www.cdaction.com.pl"></map><map name=menu_top><area shape=rect coords="79, 2, 151, 16" href="index.htm"><area shape=rect coords="364, 2, 425, 16" onclick="history.go(-1);"><area shape=rect coords="544, 2, 605, 16" onclick="history.go(1);"></map><map name=design><area shape=rect coords="45, 25, 209, 38" href="mailto:[email protected]"><area shape=rect coords="668, 24, 741, 38" href="#gora"></map></BODY></html>';
document.write(ending);
}

function error(opis)
{
alert('-- Komunikat od Mrs. Wyszukiwarki --\n               zmodyfikowanej przez Jasia\n\n            MAMY PROBLEM!\n\n' + opis);
}

function random_art(ok)
{
if (ok == 'nie')
{
x = parseInt(Math.random()*(dane.length-1)+1);
alert('"' + dane[x].tytul + '"' + '\n\      by\n' + dane[x].autor);
location.href=dane[x].sciezka;
}
}

//koniec wyszukiwarki

//ROLLOVER
function img_on(obraz)
{
document.images[obraz].src="img/" + obraz+"_on.gif";
}

function img_off(obraz)
{
document.images[obraz].src="img/" + obraz+"_off.gif";
}

To jest kod wyszukiwarki wycięty z jakiegoś szablonu strony, jakby były problemy to skontaktuj się ze mną na GG to prześle Ci cały szablon.

0

Dzięki wam wszystkim za pomoc, a szczególnie Vendro. [browar]
Szczęśliwego Nowego Roku!

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0