不错的页面搜索脚本
要完成此效果需要两个步骤
第一步:把如下代码加入到<body>区域中
<div align="center"> <script language="JavaScript">
<!--
// 下面是负责搜索的页面的全路径或相对路径
var search_htm_url = "test.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('<form name="searchpage" onSubmit="return searchPage()">'
+'请填入关键字(试试填入java): <input type="text" size=22 name="keyword"> '
+'<input type="button" value="Search" onClick="searchPage()"><br>'
+'<select name="and_or" size=1><option>关键字与搜索<option>关键字或搜索 '
+'<option>关键字异或搜索</select></form>');
// -->
</script> </div>
第二步:同一目录新建“test.htm”内容如下
<form NAME="database"> <input type="hidden" name="list" value="http://typhoon.500.to~Typhoon Start|javascript乐园 ^JavaScript Fairyland "> </form> <!--以上可以自行调整--> <script language="JavaScript"> <!-- function Page(url,title,keywords,description) { while ((url.length > 0) && (url.charAt(0) == " ")) { url = url.substring(1,url.length); } this.url = url; while ((title.length > 0) && (title.charAt(0) == " ")) { title = title.substring(1,title.length); } this.title = title; this.keywords = keywords; this.description = description; return this; } function Database() { var pos = 0; while ((pos1 = amorphous.indexOf("~",pos)) != -1) { pos2 = amorphous.indexOf("|",pos1+1); pos3 = amorphous.indexOf("^",pos2+1); pos4 = amorphous.indexOf("*",pos3+1); if ((pos2 != -1) && (pos2 < pos3) && (pos3 < pos4) && (pos4 <= amorphous.indexOf("*",pos))) { this[database_length++] = new Page(amorphous.substring(pos,pos1), amorphous.substring(pos1+1,pos2), amorphous.substring(pos2+1,pos3), amorphous.substring(pos3+1,pos4)); pos = pos4+1; } else { // error reading amorphous database if (pos+30 <= amorphous.length) alert('Error reading in amorphous database around "' + amorphous.substring(pos,pos+30) + '"'); pos = amorphous.indexOf("*",pos) + 1; } } return this; } function search(str) { menu_length = 0; temp = new Object(); temp_length = 0; words_length = 0; words = new Object(); pos = 0; while ((pos = str.indexOf(" ")) != -1 && and_search != "exact") { words[words_length] = str.substring(0,pos); if (words[words_length].length > 0) words_length++; if (str.length == 1) str=""; else str = str.substring(pos+1,str.length); } if (str.length > 0) words[words_length++] = str; for (q=0;q<words_length;q++) { temp_length = 0; str = words[q].toLowerCase(); len = (and_search=="and"&&q>0?menu_length:database_length); for (n=0; n<len; n++) { if (and_search=="and"&&q>0) {
|