本人参考网上的内容写了静态页面的搜索。
可以在运行中发现问题。
搜索字段 spring return
在http://192.168.1.101/2009/query.htm?spring%20return 完全没有问题。可以得到内容
可是在file:///G:/2009/query.htm?spring%20return 却告之没有相关内容。 只搜索spring没有问题。
这个程序是放在光盘中让人瞧的。所以应该是在下面这样的条件下进行。
不知可有牛人告诉一下,问题出现在那里?

解决方案 »

  1.   

    用的代码如下。1 form.htm
    起始页面,页面里有查询框。
    <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";
    这两个文件需要下标对应,不能错位。