Java-скрипт для поиска.
Приветствую! Народ помогите найти скрипт для реализации поиска. Необходим скрипт, который выполнял бы поиск текста по сайту на всех страницах... Заранее спасибо :) :) :)
|
Такое не на JavaScript делают
|
На яве возможно такое реализовать. На PHP найти легче. Но меня интересует именно ява...
|
Во первых не «ява», а «JavaScript», если вы конечно не «Java» имели ввиду, тогда вам в другой форум. «JavaScript» и «Java» совершенно разные вещи.
Во вторых, для поиска по сайту требуется серверная часть, и если вы и найдете «JavaScript» каким-то образом реализующий возможности поиска, то это скорее всего будет скрипт поисковой системы «Google», «Яндекс», «GoGo» или какой-то другой, и он будет использовать свой сервер для выдачи поисковых запросов. Но на чистом «JavaScript» без применения серверных технологий, еще раз повторюсь, такие вещи не делают. |
Цитата:
|
Kolyaj,+1)))
представляю себе этот ужас |
<script laguage="javascript" type="text/javascript">
function search(site,text)
{
document.getElementById('ifrSearch').src='http://google.ru/search?q=site:'+site+' '+text;
}
function start_search()
{
search('адрес сайта',document.getElementById('what').value);
}
</script>
<input type="text" id="what" /><input type="button" onclick="start_search();" /><br />
<iframe id="ifrSearch"></ifame>
Только двиг чужой всё же.... |
Прошу прощения, забыл указать что поиск необходим именно локальный... т.е. грубо говоря сайт будет записан да CD. И туда необходимо интегрировать поиск... Скрипты, которые будут обращаться в сеть, не катят (
|
Ну тогда все элементарно :)
Перед записью диска, создаете индекс всех текстов, а потом уже по этому индексу JavaScript'ом быстренько все ищете. Можно усложнить задачу, и реализовать морфологию. Да вообще, много чего можно, и работать это будет достаточно шустро (данные-то из инета качать не надо), вопрос в реализации. |
Цитата:
|
Это вам уже на форум о поисковых технологиях.
|
И всеже если кто ответит, буду признателен... Заранее спасибо.
|
Если из-под IE, то File System Objects и флаг вам в руки:)
А вообще можно сделать файл, типа такого: <a href="file_0.html"></a> <a href="file_1.html"></a> <a href="file_2.html"></a> Сделать пагу, загружающую файл в iframe (разумеется, невидимый).Затем пага его парсит, получаая ссылки на читабельные файлы (не нужен ведь в .jpg файлах поиск?). По этим ссылкам в другой ифрейм (тоже невидимый) загрузить файл, получить его код, при наличии искомой строки, вывести ссылку. |
Это ужасное и ничем неоправданное решение. Такие вещи должны делаться на сервере.
|
Цитата:
либо еще к примеру регуляркой по типу Код:
/>\s*([^<>]*\S+[^<>]*)\s*</UЦитата:
ЗЫ на универсальность,полноту, или правильность, или хоть на какие-то положительные качества для этого решения не претендую. просто, первое что тпришло в голову. ЗЫЫ индексацию стоит проводить средствами других языков |
Это ужасное и ничем неоправданное решение. Такие вещи должны делаться на сервере. Человек же написал, чтопоиск должен происходить на локалхосте, и страницы находятся тоже на нём? Или меня глюкануло???? |
Цитата:
|
ПОМОГИТЕ ПОЖАЛУЙСТААААА.... Я НИЧЕГО НЕ СМЫСЛЮ В JAVASCRIPT.... ПОДСКАЖИТЕ ПОЖАЛУЙСТА.... МОЖНО ЛИ НАЙТИ СЛОВО В ТЕКСТЕ С ОПРЕДЕЛЕННЫМ НОМЕРОМ С ПОМОЩЬЮ JAVASCRIPT, А ПОТОМ ЕЩЕ И УДАЛИТЬ ЕГО...... ИНАЧЕ Я СКОРО СОЙДУ С УМА.............................. S........O.........S
|
можно
|
если Caps Lock выключить
и вообще специальный смайлик есть - :help: |
И вообще истеричкам на JS нельзя программировать. Их браузеры быстренько с ума сведут :)
|
Они кого угодно сведут с ума.:)
Надо быть психически устойчивым.не путать с "психически здоровым".вот такие как раз легче всего ломаются |
воттолько без alert не работает цикл прохождения
<script>
var LinkMass=new Array(4);
var r=s=str1=str2=str3='';
var i=cikl=0;
var n=5;
LinkMass[0]='index.html';
LinkMass[1]='produkciya/index.html';
LinkMass[2]='proizvodstvo/index.html';
LinkMass[3]='kontakti/index.html';
LinkMass[4]='fotogalery/index.html';
function func()
{
while (cikl <5)
{
document.getElementById('Result').innerHTML=document.getElementById('Result').innerHTML+cikl+"<br>";
poisk(cikl);
cikl++;
}
}
function poisk (i)
{
r=srch.value;
s=document.getElementById('Result').innerHTML;
str3 = " "; str1 = "";
alert (i);
fram.document.location.href=(LinkMass[i]);
document.getElementById('frams').src=LinkMass[i];
str1 =(fram.document.body.innerText.substring(fram.document.body.innerText.indexOf(r,0),fram.document.body.innerText.indexOf(r,0)-100));
str2 =(fram.document.body.innerText.substring(fram.document.body.innerText.indexOf(r,0),fram.document.body.innerText.indexOf(r,0)+250));
str3 = ('<b>...</b>'+ str1 + str2 + '<b>...</b>');
if (str1 != '')
{
document.getElementById('Result').innerHTML=s+"<br><p align='justify'><a class=\'Menu' href=\'"+ document.getElementById('frams').src +"\'>"+fram.document.title + "</a>
"+"<br>"+ document.getElementById('frams').src +"<br><br>"+"<a class='Text' style='cursor: default'>" + str3 + "</a>"+"<hr></p>"
}
}
</script>
|
это что такое?
|
вот можно так...
вот можно так, это очень старый метод... только ссылки (базу) придется ручками записать..
на странице напиши: <script SRC="database.txt"></script> потом форма поиска:
<form method="POST" name="form1" style="font-size: 9"><td width=740 class="nav" style="background-image: url('b5.gif'); background-color:#F4F6F8" height="32"><p align="right"><input type="text" name="sub"
size="15" style="font-size: 9"><input type="reset" value="Поиск" onClick="dolt()" style="font-size: 9">
туда же загрузи текстовый файл с названием database.txt куда запишешь :
/******************************************************************
** **
** Variable WebPage JavaScript **
** Version 1.0 **
** Web: **
** E-mail: **
** Copyright © 2007 **
** All Rights NOT Reserved. **
** **
******************************************************************/
Keyword = new Object();
Address = new Object();
Keyword[0] = 2
Keyword[1] = "Очень красивый город.... "
Address[1] = "http://www.Baku.az/"
Keyword[2] = "Последние новости Азербайджана "
Address[2] = "http://1news.az/"
function contains(sub,s){
strlen1=sub.length
strlen2=s.length
istrue=false
for(i=0;i<=strlen2;i++)
{
comp=s.substring(i-1,strlen2)
comp=comp.substring(0,strlen1)
if(comp==sub){
istrue=true
break
}
}
return istrue
}
function dolt() {
loopCount=0;
var Found=false
var Item=document.forms[0].sub.value.toLowerCase();
stats='toolbar=no,location=no,scrollbars=yes,directories=no,status=yes,menubar=no,height=500,width=790,top=0,left=0'
stats += 'scrollbars=yes,resizable=yes'
MsgBox = window.open ("","msgWindow",stats)
MsgBox.opener = window;
MsgBox.opener.name = "opener";
MsgBox.document.write("<head><title>Результат поиска по сайту: для "+Item+"</title></head>");
if(document.form1.sub.value=="")
MsgBox.document.write('<h5><font face="Verdana,Arial,Helvetica" color="#000000">Общая информация для поиска по сайту<HR></h5></font>');
else
MsgBox.document.write('<h5><font face="Verdana,Arial,Helvetica" color="#000000">Результат поиска по сайту: для '+Item+'<HR></h5></font>');
for(var i=1; i<=Keyword[0]; i++){
contains(Item,Keyword[i].toLowerCase())
if(comp==Item){
loopCount++;
Found=true;
MsgBox.document.write('<div align="center"><center><table border="0" width="740" cellspacing="0" cellpadding="8"><tr><td width="2%" bgcolor="#FFFffF" height="18"align="center"><font face="Verdana,Arial,Helvetica" size="2" color="#000000"><h5>'+loopCount+'. </h5></font></td> <td width="150%" bgcolor="#FFFFFF" height="18" align="left"><font color="#000000"></font><fontcolor="#000000"><font face="Verdana,Arial,Helvetica" size="2" color="#000000">'+Keyword[i]+'<BR><A HREF='+Address[i]+' target="_blank">Подробнее...</A></font></h1></font><font color="#000000"></font></td></tr></table></center></div>')
MsgBox.document.write('<script Language="JavaScript">window.status=("Total '+loopCount+' found")</'+'script'+'>');
}
}
if(!Found)
MsgBox.document.write('<font face="Verdana,Arial,Helvetica" size="2" color="#FF0000">По вашему запросу ничего не найдено. </font>')
MsgBox.document.write('<font face="Verdana,Arial,Helvetica" size="2" color="#0054A0"><p align="center"><HR><a href="mailto:почта@mail.az">© ваша компания LTD 2007 - 2008 </a></p></font>')
MsgBox.document.write('<style><!--A:link{color: #FF0000; text-decoration:none} A:visited {color: #0054A0; text-decoration:none}--></style>')
if(loopCount==0){
MsgBox.document.write('<script Language="JavaScript">window.status=("Total 0 found")</'+'script'+'>');
}
}
|
Жаль, что не заметил этого вопроса раньше. Ну, может, кому-то ещё пригодится... Решения существуют - достаточно стандартные, и не очень:
1) HTML Help Workshop: скомпилировать набор веб-страниц с указанием опции "Полнотекстовый поиск"; 2) Если данные достаточно однородные, запихать их в текстовую таблицу, написать небольшой обработчик на Javascript для объекта Tabular Data Control и опять же скомпилировать всё с помощью HTML Help Workshop - когда-то я так целые словари делал (http://figur.ir2.ru/tolktdc.zip, 3.5 МБ, Словарь Ожегова) |
| Часовой пояс GMT +3, время: 01:15. |