Java script поиска по сайту

 
0
 
JavaScript
ava
guest | 23.10.2004, 19:43
smile Люди помогите найти Java script поиска по сайту если есть готовые просьба скиньте на мой E-mail: [email protected]
Comments (14)
ava
Sardar | 23.10.2004, 21:07 #
Инересно что ты имеешь в виду? ;-)

JаvaScript может найти что нибудь на странице, в настоящий момент загруженной в твой браузер, поиск по всем старницам делается на сервере.
ava
Aliance | 24.10.2004, 18:58 #
Странно, создано 2 индетичных топа, пишу все же тут:


<a href="javascript: FD983r = {x:function() {
var r, i, s = document.selection.createRange().text;
if(!s)s = prompt('Найти:','');
if(s) {
r = document.body.createTextRange();
for (i=0;r.findText(s);i++) {
r.execCommand('BackColor','','yellow');
r.collapse(false)
};
alert('Найдено: '+i+' слово(а)')
}
}
}; FD983r.x()"><U>Поиск по сайту</U></a>


Лучше бы еще все это поместить в onclick, дабы не засорять статус...
ava
Sardar | 25.10.2004, 01:30 #
Цитата (Aliance @ 24.10.2004, 17:58)


Странно, создано 2 индетичных топа, пишу все же тут:


Мусор из ветки Java пришел :D

Цитата (Aliance @ 24.10.2004, 17:58)


Лучше бы еще все это поместить в onclick, дабы не засорять статус


Лучше бы вообще отдельную функцию сделать, мне нравится минимализм и извращенные вкусы, но так уже перебор smile
Что бы не только в ИЕ работало:
<script language="Javascript" type="text/javascript">
<!--
function find() {
if((s = prompt('Найти:',''))) {
var r=new RegExp(s,"gi");
document.body.innerHTML=document.body.innerHTML.replace(r, function(str) {
return "<span style='background-color: yellow'>"+str+"</span>";
});
}
}
//-->
</script>
<span onClick="find()"><U>Поиск по странице</U></span><br>

Но метод плох тем что ищет по всей разметке, а не по тексту, поробуй поискать u smile
Жалеем что только в ИЕ есть innerText, придётся перебирать всё дерево документа и искать отдельно в каждой ноде.

IE рулит, все таки хорошо в нем дополнения к DOM придуманны!
ava
guest | 25.10.2004, 14:29 #
поиск по сайту как таковой можно сделать только на сервере
но из области изврата есть тоже, это и selection.createRange
а можно сделать так, создаешь js где описвапешь все страницы сайта ну самые существенные слова
затем просто через индекс оф ищещь их там и выдаешь результат с указанием на страницы
все элементарно smile
ava
Aliance | 25.10.2004, 18:46 #
Цитата (Sardar @ 25.10.2004, 01:30)


Лучше бы вообще отдельную функцию сделать, мне нравится минимализм и извращенные вкусы, но так уже перебор


Ну я это и имел ввиду, не буду ж я все это пихать в онклик, как сделал с хрефом smile)))))))))))


Цитата (Sardar @ 25.10.2004, 01:30)


Что бы не только в ИЕ работало:


:hehe не бейте больно... smile тайма нету ;-)
ava
guest | 25.10.2004, 19:45 #
smile Люди ВСЕМ БОЛЬШОЕ СПАСИБО,но ещё подскажите я использовал function find() в Explorere всё работает отлично, но в Опере поиск не работает.
ava
Sardar | 25.10.2004, 20:24 #
Если ты использовал код от Aliance, то он действительно только для ИЕ. Мой код юзать не сотоит, это был просто пример :)

Поиск по сайту, а не по странице нужно делать на сервере. С поиском по странице хорсошо справляется сам браузер ;-)
ava
Mebios | 25.10.2004, 20:29 #
у меня неиного другой код финкции , но функция называется абсолютно также и он(скрипт) ищет по всему сайту по созданной базе,
added later:
Если function find() работает только на ИЕ, то какая функция работает и в Опере
ava
Sardar | 25.10.2004, 21:33 #
Цитата (Mebios @ 25.10.2004, 19:29)
у меня неиного другой код финкции , но функция называется абсолютно также


Ты шутишь или серьезно...? :D

Вообще имя ни о чем не говорит, мы тут вроде сами код пишем, а имя только имя. У IE есть встроенные функции для выделения искомых слов при загрузке и многое другое, Опера и прочие бразуеры это не поддерживают.
Теперь покажи свой код, иначе не разберемся.

А вообще JavaScript надо учить... ;-)
ava
Mebios | 26.10.2004, 11:16 #
вот это и естьтот самый скрипт

var msg="";
var yes=false;
var found=0;
var bold="";
var boldN="";
var resultsN="";

function find ()
{

var search= "";

search = document.searchform.searchbox.value;

if(search.length <3) { return;}
var searchFor=search.toUpperCase();

for(i=0;i<searchInfo.length;i++)
{
for(n=0;n<searchInfo[i].info.length;n++)
{
var results=searchInfo[i].info.substring(n,n+search.length);
if(results.toUpperCase()==searchFor)
{
yes=true;
bold=searchInfo[i].info.substring(0,40);
bold +=".....";
break;
}
}

if(yes==true)
{
found++;
boldN=searchInfo[i].name;
msg+= '<a href="'+searchInfo[i].link+'">'+boldN+'</a> - '+bold+'<br>';
yes=false;
}
}




var table=" <b> РЕЗУЛЬТАТЫ ПОИСКА: </b> Найдено <font size=+1 color=#00008B>"+found+"</font> ссылок "+ '<font color=#FF0000><b>' + search + '</b></font><br><br>';

if(document.all) document.all.sR.innerHTML =table + '\n' +msg;

if(document.layers)
{
//Здесь открыть новое окно, куда все и записать.
var neww = window.open("", "neww");
neww.document.write(table + '\n' + msg);
neww.document.close();
}

window.status="Поиск завершен.";

yes=false;
found=0;
document.forms[0].searchbox.value="";
resultsN="";
bold="";
msg="";
boldN="";
}
ava
Aliance | 26.10.2004, 14:52 #
Естественно он будет работать только под IE и NN.
И вообще, пользуйся тегами code
ava
Mebios | 26.10.2004, 20:03 #
smile Конечно я осознаю что я ламер в этом деле, и что ты опытний человек, но я настроил так что он работает везде и пока меня всё устраивает.




ВСЕМ БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ!!!!!

осбенно Sardar 'у! smile
ava
Sardar | 26.10.2004, 23:06 #
А-а-а!!! Руки бы поотрывал за такой код smile
Ситуация вижу сменилась, ищем по базе, тогда вот пример:
<script language="Javascript" type="text/javascript">
<!--
searchInfo=[
{info:"ПРИВЕТ ВСЕМ", link:"www.yandex.ru", name:"Yandex Search"},
{info:"GOOGLE NAJDET VSE", link:"www.google.ru", name:"Google"}
];

function find () {
var found=0, msg="";
var s=document.forms.searchform.searchbox.value.toUpperCase();
if(s.length <3) {alert("Слово для поиска слишком короткое!"); return;}
for(var i=0; i<searchInfo.length; i++) {
if(searchInfo[i].info.indexOf(s)>=0) {
msg+= '<a href="'+searchInfo[i].link+'">'+
searchInfo[i].name+"</a>&nbsp;&nbsp;&nbsp;-&nbsp;"+
searchInfo[i].info.substring(0,40)+".....<br>\n";
found++;
}
}
var conte="<html><body><b>РЕЗУЛЬТАТЫ ПОИСКА:&nbsp;&nbsp;</b>&nbsp;&nbsp;&nbsp;Найденно <font size='+1' color=#00008B>"+found+"</font> ссылок &nbsp;<font color=#FF0000><b>" +document.forms.searchform.searchbox.value+ "</b></font><br><br>" + msg+"</body></html>";
var neww = window.open("", "new");
neww.document.write(conte);
neww.document.close();
document.forms.searchform.searchbox.value="";
window.status="Поиск завершен."
}
//-->
</script>
<form name="searchform">
<input type="text" name="searchbox"><br>
<input type="button" onClick="find()" value="Search">
</form>
ava
Alx | 27.10.2004, 16:47 #
Цитата
Руки бы поотрывал за такой код

smile твоя любимая фраза! smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  guest   Sardar   Alx ava  Aliance   Mebios
advanced
Submit