站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题JavaScript实例 站内搜索例子 (一)

JavaScript实例 站内搜索例子 (一)

摘要: JavaScript实例 站内搜索例子 (一)
<textarea readonly style="border:none;font-family:Courier New;line-height:150%;width:760px;overflow-y:visible">


脚本说明:
第一步:把如下代码加入&lt;body&gt;区域中
&lt;script language="JavaScript"&gt;
&lt;!--
// 下面是负责搜索的页面的全路径或相对路径
var search_htm_url = "searchsource.htm";

function searchPage() {
if ((document.searchpage.keyword.value.length == 0)
|| (document.searchpage.keyword.value == " ")) {
alert("请填入关键字!");
} else {
sel = document.searchpage.and_or.selectedIndex;
location.href = search_htm_url + "?"
+ escape(document.searchpage.keyword.value)
+ (sel==0?"&and":(sel==2?"&exact":"&or"));
}
return false;
}

document.write('&lt;form name="searchpage" onSubmit="return searchPage()"&gt;'
+'请填入关键字: &lt;input type="text" size=22 name="keyword"&gt; '
+'&lt;input type="button" value="Search" onClick="searchPage()"&gt;&lt;br&gt;'
+'&lt;select name="and_or" size=1&gt;&lt;option&gt;关键字与搜索&lt;option&gt;关键字或搜索 '
+'&lt;option&gt;关键字异或搜索&lt;/select&gt;&lt;/form&gt;');
// --&gt;
&lt;/script&gt;

第二步:新建searchsource.htm 其内容为
&lt;!-- 代码开始--&gt;
&lt;form NAME="database"&gt;
&lt;input type="hidden" name="list"
value="http://www.njcatv.net~南京有线电视台网站|njcatv 南京有线电视台 网页特效 影音空间 新闻 javascript
java applet 健康之桥^为广大南京市民提供全方位的信息和帮助*http://www.sina.com.cn~最全的中文新闻发部站点
|sina 新浪 新闻 super 王志东 聊天室^国内最大的新闻网站!*http://www.163.net~最大的综合中文网站|163 netease
网易 丁磊 新闻 yeah 126 娱乐 freemail 聊天室^最大的综合中文网站,为你提供全方位的各种信息,是你上网的好去
处!*http://www.sohu.com~最大的中文引擎搜索站点|sohu search 搜索 引擎 张朝阳 聊天室^最大的中文引擎搜索站点,
是你上网查找资料的最好去处!*http://www.sohu.com~最大的中文引擎搜索站点|sohu search 搜索 引擎 张朝阳 聊天室^
最大的中文引擎搜索站点,是你上网查找资料的最好去处!*http://www.sohu.com~最大的中文引擎搜索站点|sohu search
搜索 引擎 张朝阳 聊天室^最大的中文引擎搜索站点,是你上网查找资料的最好去处!*http://www.sohu.com~最大的中文
引擎搜索站点|sohu search 搜索 引擎 张朝阳 聊天室^最大的中文引擎搜索站点,是你上网查找资料的最好去处!
*http://www.sohu.com~最大的中文引擎搜索站点|sohu search 搜索 引擎 张朝阳 聊天室^最大的中文引擎搜索站点,是
你上网查找资料的最好去处!*http://www.sohu.com~最大的中文引擎搜索站点|sohu search 搜索 引擎 张朝阳 聊天室^最
大的中文引擎搜索站点,是你上网查找资料的最好去处!"&gt;
&lt;/form&gt;
脚本说明:
把如下代码加入&lt;body&gt;区域中
&lt;script language="javascript"&gt;
var key = "";

function makeEntry (){
this.Date = "";
this.Name="";
this.URL = "";
this.Desc = "";
this.Category = "";
return this;
}

function makeArray(n) {
this.length = n;
for (var k = 1; k &lt;= n; k++) {
this[k] = "";
}
return this;
}

function makeLinks(size) {
this.length = size;
for (var r=1; r&lt;= size; r++) {
this[r] = new makeEntry();
this[r].Date = datesArray[r];
this[r].Name = namesArray[r];
this[r].URL = urlsArray[r];
this[r].Desc = descArray[r];
}
return this;
}

var linksize=0

datesArray = new makeArray(linksize);
namesArray = new makeArray(linksize);
urlsArray = new makeArray(linksize);
descArray = new makeArray(linksize);

var arraycount=0

arraycount += 1
datesArray[arraycount] = "5/30/2000"
urlsArray[arraycount] = "http://www.163.net"
namesArray[arraycount] = "网易"
descArray[arraycount] = "163 netease yeah 126 chinese "
//alert(arraycount)

arraycount += 1
datesArray[arraycount] = "5/30/2000 "
urlsArray[arraycount] = "http://www.sina.com.cn"
namesArray[arraycount] = "新浪网"
descArray[arraycount] = "sina net chat chatting news super"
//alert(arraycount)

arraycount += 1
datesArray[arraycount] = "5/30/2000 "
urlsArray[arraycount] = "http://www.sohu.com"
namesArray[arraycount] = "搜狐"
descArray[arraycount] = "sohu net chat news "
//alert(arraycount)

linksize = arraycount;

// ----end data -------

function showAll(linkobj) {
for (var s=1; s&lt;= linkobj.length; s++) {
showLink(linkobj,s);
}
}

function showLink (links, index) {
//document.write("&lt;table border&gt;");
document.write("&lt;tr&gt;&lt;td&gt;" + links[index].Date +"&lt;/td&gt;");
document.write("&lt;td&gt;&lt;a href=" + links[index].URL +"&gt;" + links[index].Name + "&lt;/a&gt;&lt;/td&gt;");
document.write("&lt;td&gt;" + links[index].Desc + "&lt;/td&gt;&lt;/tr&gt;");
//document.write("&lt;/table&gt;");
}

function searchLinks(links, keyword){
document.write("搜寻结果: " +keyword +"&lt;br&gt;");

document.write("&lt;table border&gt;");
for (var q=1; q&lt;=links.length; q++) {
//document.write(q+".")
if (links[q].URL.indexOf(keyword) != -1){
// document.write("Search Results for keyword: "+keyword+ "&lt;br&gt;" +links[q].Name +"&lt;p&gt;")
//document.write("搜寻结果: "+keyword+ "&lt;br&gt;" );
showLink(links,q);
continue;
}
if (links[q].Desc.indexOf(keyword) != -1) {
showLink(links,q);
continue;
}
if (links[q].Date.indexOf(keyword) != -1) {
showLink(links,q);
continue;
}
if (links[q].Name.indexOf(keyword) != -1) {
showLink(links,q);
continue;
}
}
document.write("&lt;/table&gt;");
}

// final stuff
// the main program ---

jsi = new makeLinks(linksize);
document.write("&lt;title&gt;站内查询&lt;/title&gt;");
searchLinks(jsi, prompt("输入查询关键字:","输入查询关键字:"));
document.write("&lt;hr&gt;");
document.write("按&lt;b&gt;search again&lt;/b&gt;再次查询&lt;hr&gt;");
document.write("&lt;form&gt;&lt;input type=button onClick='history.go(0)' value='Search Again'&gt;&lt;/form&gt;");

// show all the links
//document.write("&lt;table border&gt;");
//showAll(jsi);
//document.write("&lt;/table&gt;");

&lt;/script&gt;

脚本说明:
第一步:把如下代码加入&lt;body&gt;区域中
&lt;script language="javascript"&gt;
var key = "";
function makeEntry (){
this.Name="";
this.URL = "";
this.Desc = "";
this.Category = "";
this.Target = "";
return this;
}

function makeArray(n) {
this.length = n;
for (var k = 1; k &lt;= n; k++) {
this[k] = "";
}
return this;
}

function makeLinks(size) {
this.length = size;
for (var r=1; r&lt;= size; r++) {
this[r] = new makeEntry();
this[r].Name = namesArray[r];
this[r].URL = urlsArray[r];
this[r].Desc = descArray[r];
this[r].Category = categoryArray[r];
this[r].Target = targetArray[r];
}
return this;
}

var linksize=0

datesArray = new makeArray(linksize);
namesArray = new makeArray(linksize);
urlsArray = new makeArray(linksize);
descArray = new makeArray(linksize);
categoryArray = new makeArray(linksize);
targetArray = new makeArray(linksize);

var arraycount=0

&lt;!-- 数据库部分由此开始 --&gt;
arraycount += 1
urlsArray[arraycount] = "http://java2000.126.com"
namesArray[arraycount] = "java脚本资源站Chinese-GB"
descArray[arraycount] = "java, javascript, scripts, applet, html, dhtml ,activex, midi, search, downloads,
脚本, free, 免费资源"
categoryArray[arraycount] = "最酷的java脚本资源站,大量详细的java源代码和实例说明!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://members.aol.com/MASTER54X/Anime.html"
namesArray[arraycount] = "Anime Master"
descArray[arraycount] = "anime master, anime, project a-ko, vampire hunter D, tenchi muyo, bubblegum
crisis, sailor moon, sailormoon, gunsmith cats, slayers, all purpose cultural cat girl nuku nuku, plastic
little, devil hunter yohko, iria: zeiram the animation, iria, ranma 1/2, ranma, fist of the north star,
multimedia, galleries, pic galleries, picture gallery, image gallery, image galleries"
categoryArray[arraycount] = "Multimedia, Image galleries for project a-ko, vampire hunter D, tenchi muyo,
bubblegum crisis, sailormoon, gunsmith cats, slayers, all purpose cultural cat girl nuku nuku, plastic
little, devil hunter yohko, iria: zeiram the animation, ranma 1/2, and fist of the north star."
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://www.geocities.com/Tokyo/Towers/6508/"
namesArray[arraycount] = "The Anime Shrine"
descArray[arraycount] = "the anime shrine, anime shrine, anime, the anime shrine, anime shrine, manga,
saintseiya, fushigiyuugi, fushigi yuugi, evangelion, neon genesis evangelion, eva, ranma, ranma 1/2"
categoryArray[arraycount] = "this is a fairly large site with large image galleries from many dif animes,
many links, gives out awards, has 3 voting shrines, also sub-Shrines for Fushigi Yuugi, SaintSeiya,
Evangelion, and Ranma 1/2. And much more! Must see!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://home.taegu.net/~virus/"
namesArray[arraycount] = "Evangelion Site"
descArray[arraycount] = "evangelion site, anime, evangelion, neon genesis, neon genesis evangelion, eva,
neon, genesis"
categoryArray[arraycount] = "This site is about evangelion, but available in Korean only..."
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://animeonline.org/"
namesArray[arraycount] = "The Animeonline Network"
descArray[arraycount] = "the animeonline network, anime, animecca, news, information, anime magazine,
magazine, zine, e-zine"
categoryArray[arraycount] = "Your Online Anime Magazine!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://www.visi.com/~vdgaijin/gaijin.html"
namesArray[arraycount] = "Psychommu Gaijin Anime E-zine"
descArray[arraycount] = "psychommu gaijin anime e-zine, anime, music, links, news, information, e-zine,
zine"
categoryArray[arraycount] = "Our aim is to provide you with news and information on some of the coolest
aspects of Anime. Old and new! So come on in and enjoy!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://the.animearchive.org/"
namesArray[arraycount] = "Ultimate Animanga Archive"
descArray[arraycount] = "ultimate animanga archive, anime, manga, images, pictures, image gallery, midi,
image galleries, music, chat, information, descriptions, info"
categoryArray[arraycount] = "Searchable page of images, info, and descriptions of anime OAVs and series."
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://otakuworld.com/"
namesArray[arraycount] = "Otaku World"
descArray[arraycount] = "otaku world, anime, manga, desktop themes, anime themes, search engine, link
database, web rings, web ring"
categoryArray[arraycount] = "One of the largest multimedia anime sources on the web!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://www.usagi.com"
namesArray[arraycount] = "Usagi.com"
descArray[arraycount] = "usagi.com, anime, manga, links, link, database, tenchi, tenchi muyo, download,
multimedia"
categoryArray[arraycount] = "Your guide to the online anime community!"
targetArray[arraycount] = "target=_blank"

arraycount += 1
urlsArray[arraycount] = "http://www.si.hhs.nl/~v962343/home.html"
namesArray[arraycount] = "Richie's Place"
descArray[arraycount] = "richie's place, anime, manga, pictures, pics, movies, links, gif animations,
animation, hentai, java, link"
categoryArray[arraycount] = "Richie's Place! Over 30 pages! with a picture gallery, movies, gif
animations, games, java and more."
targetArray[arraycount] = "target=_blank"

linksize = arraycount;

// ----数据库结束 ------
// ----以下是输出结果检索结果的页面代码 ----

function searchLinks(links, keyword){
document.write("&lt;BODY fontsize='2' BGCOLOR='#000000' TEXT='#ffffff' LINK='#ccffcc'
VLINK='#ffffff'&gt;")
document.write("搜索关键字结果: &lt;strong&gt;" +keyword +"&lt;/strong&gt;&lt;br&gt;&lt;br&gt;");
for (var q=1; q&lt;=links.length; q++) {

if (links[q].URL.toLowerCase().indexOf(keyword) != -1){
document.write("&lt;a href=" + links[q].URL +" " + links[q].Target + "&gt;" + links[q].Name + "&lt;/a&gt; -
");

document.write( links[q].Category + "&lt;br&gt;&lt;br&gt;");
continue;
}
if (links[q].Desc.toLowerCase().indexOf(keyword) != -1) {
document.write("&lt;a href=" + links[q].URL +" " + links[q].Target + "&gt;" + links[q].Name + "&lt;/a&gt; -
");

document.write( links[q].Category + "&lt;br&gt;&lt;br&gt;");
continue;
}
if (links[q].Name.toLowerCase().indexOf(keyword) != -1) {
document.write("&lt;a href=" + links[q].URL +" " + links[q].Target + "&gt;" + links[q].Name + "&lt;/a&gt; -
");

document.write( links[q].Category + "&lt;br&gt;&lt;br&gt;");
continue;
}

}

}

&lt;/script&gt;
&lt;font size="5" color="#FF0000"&gt;站内搜索引擎&lt;br&gt;
&lt;/font&gt;&lt;font color="#FF0000"&gt; &lt;font color="#000000"&gt;测试:输入关键字"java"
或中文字符"免费" 查询。&lt;/font&gt;&lt;/font&gt; &lt;/div&gt;
&lt;p align=Center&gt;
&lt;form name="form"&gt;
&lt;div align="center"&gt;
&lt;p&gt;查询关键字:
&lt;input type="text" size=20 name="search"&gt;
&lt;input type="button" name="submit" value="开始查询" onClick="validate_form()" class="pt9"&gt;
&lt;input type="reset" name="reset" value="清除" class="pt9"&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;/form&gt;
&lt;!-- 以下是合法性检测 --&gt;
&lt;script&gt;
function validate_form() {

txt = document.form.search.value;
if (txt.indexOf(".") != -1){
alert("Search is invalid! Contains a '.'"); return;}
if (txt.indexOf(",") != -1){
alert("Search is invalid! Contains a ','"); return;}
if (txt.indexOf("@") != -1){
alert("Search is invalid! Contains a '@''"); return;}
if (txt.indexOf("!") != -1){
alert("Search is invalid! Contains a '!''"); return;}
if (txt.indexOf("#") != -1){
alert("Search is invalid! Contains a '#''"); return;}
if (txt.indexOf("$") != -1){
alert("Search is invalid! Contains a '$''"); return;}
if (txt.indexOf("%") != -1){
alert("Search is invalid! Contains a '%''"); return;}
if (txt.indexOf("^") != -1){
alert("Search is invalid! Contains a '^''"); return;}
if (txt.indexOf("&") != -1){
alert("Search is invalid! Contains a '&''"); return;}
if (txt.indexOf("*") != -1){
alert("Search is invalid! Contains a '*''"); return;}
if (txt.indexOf("(") != -1){
alert("Search is invalid! Contains a '(''"); return;}
if (txt.indexOf(")") != -1){
alert("Search is invalid! Contains a ')''"); return;}
if (txt.indexOf("[") != -1){
alert("Search is invalid! Contains a '[''"); return;}
if (txt.indexOf("]") != -1){
alert("Search is invalid! Contains a ']''"); return;}
if (txt.indexOf(";") != -1){
alert("Search is invalid! Contains a ';''"); return;}
if (txt.indexOf(":") != -1){
alert("Search is invalid! Contains a ':''"); return;}
if (txt.indexOf("&lt;") != -1){
alert("Search is invalid! Contains a '&lt;''"); return;}
if (txt.indexOf("&gt;") != -1){
alert("Search is invalid! Contains a '&gt;''"); return;}
if (txt.indexOf("?") != -1){
alert("Search is invalid! Contains a '?''"); return;}
if (txt.indexOf("-") != -1){
alert("Search is invalid! Contains a '-''"); return;}
if (txt.indexOf("=") != -1){
alert("Search is invalid! Contains a '=''"); return;}
if (txt.indexOf("+") != -1){
alert("Search is invalid! Contains a '+''"); return;}
else {
jsi = new makeLinks(linksize);
searchLinks(jsi, txt);
document.write("&lt;hr&gt;");
document.write("&lt;a href='searchabledb2.htm'&gt;返回检索页&lt;/a&gt;&lt;br&gt;&lt;br&gt; ");
//将searchabledb2.htm替换为检索页的URL,以便访问者返回检索页。
}

}
&lt;/script&gt;

</td> </tr> </table></td> </tr>   
</td> </tr> </table> </textarea>
↑返回目录
前一篇: JavaScript实例 站内搜索例子 (二)
后一篇: 用JavaScript设置和读取cookie的简单例子