本人参考网上的内容写了静态页面的搜索。
可以在运行中发现问题。
搜索字段 spring return
在http://192.168.1.101/2009/query.htm?spring%20return 完全没有问题。可以得到内容
可是在file:///G:/2009/query.htm?spring%20return 却告之没有相关内容。 只搜索spring没有问题。
这个程序是放在光盘中让人瞧的。所以应该是在下面这样的条件下进行。
不知可有牛人告诉一下,问题出现在那里?
可以在运行中发现问题。
搜索字段 spring return
在http://192.168.1.101/2009/query.htm?spring%20return 完全没有问题。可以得到内容
可是在file:///G:/2009/query.htm?spring%20return 却告之没有相关内容。 只搜索spring没有问题。
这个程序是放在光盘中让人瞧的。所以应该是在下面这样的条件下进行。
不知可有牛人告诉一下,问题出现在那里?
起始页面,页面里有查询框。
<script language="javascript">
function gosearch(){
if (str.value==""){ alert ("请输入查找的内容!"); return false; }
window.location="query.htm?"+str.value;
}
function getkey(){
if(window.event.keyCode == 13) gosearch();
}
</script>
<input name="str" type="text" id="str" />
<input type="button" name="Button" value="查找" onclick="gosearch()" />
<script>
str.focus();
document.onkeydown=getkey;
</script>2 query.htm
搜索页面,接收上个页面 传来的参数。
<script language="javascript">
var titlearray = new Array(); //关键字数组
var urlarray = new Array(); //超级链接数组
var fitarray = new Array(); //符合要求的数组
</script>
<script type="text/javascript" src="title.js"></script>//加载关键字
<script type="text/javascript" src="url.js"></script>//加载超级链接
<script language="javascript">
var args = window.location.href.split("?");//用问号为间隔,各个参数写入数组args
var target = args[1]; //要找的字符串
for (var i=0; i<titlearray.length; i++){
if (titlearray[i].indexOf(target)!=-1){
fitarray.push(i);//将要找的结果写入数组。也可以不用数组,直接显示。
}
}
var resultstr = "";
if (fitarray.length ==0 ){
resultstr += "抱歉,没有找到资料。";
}
for (j in fitarray){
resultstr += "<a href=\""+ urlarray [fitarray[j]] +"\" target=\"_blank\">"+ titlearray[fitarray[j]]+"<br />";//结果内容赋值给了resultstr
}
</script>
<div id="result"></div>
<script language="javascript">
document.getElementById("result").innerHTML += resultstr;//显示结果内容
</script>3 title.js 关键字文件
titlearray [0] = "spring return1";
titlearray [1] = "spring return2";
titlearray [2] = "keyword3";
url.js 超级链接文件
urlarray [0] = "1.htm";
urlarray [1] = "2.htm";
urlarray [2] = "3.htm";
这两个文件需要下标对应,不能错位。