【代码保留】怎样添加一个多选搜索引擎

刚刚明明是在看书的,结果家里来了一群客人JJWW,然后就上线了,然后一个什么都不会但是充满理想和幻想的人正在做着千秋大梦,说是要弄一个很多个搜索引擎的东西(话说几十年前就泛滥了)。……好吧,就友情协助帮忙写一个,现在把代码贴这边!

效果示意:

怎么样,着实很土吧?哈哈!

search_engine_assistant.js文件

 1  function  search_engine_assistant() {
 2       this .create  =   function (items, textbox, button, redirectFunction) {
 3          button.onclick  =   function () {
 4               var  ckitems  =  document.getElementsByName( " __opt " );
 5               for  ( var  i  =   0 ; i  <  ckitems.length; i ++ ) {
 6                   if  (ckitems[i].checked) {
 7                       var  url  =  ckitems[i].value.replace(ckitems[i].attributes[ " key " ].nodeValue, textbox.value);
 8                       if (redirectFunction)
 9                          redirectFunction(url);
10                       break ;
11                  }
12              }
13          };
14           for  ( var  i  =   0 ; i  <  items.length; i ++ ) {
15               var  item  =   this .createItem(i, items[i].text, items[i].url, items[i].key, items[i].container, items[i].selected, items[i].selectedCallback);
16          }
17 
18      }
19 
20       this .createItem  =   function (id, text, url, key, container, selected, selectedCallback) {
21           var  selectedCallbackName  =   " __search_check_ "   +  id;
22           if  (selectedCallback) {
23              document.write( " <script type=\ " text / javascript\" language=\"javascript\">\nvar " + selectedCallbackName + " = " + selectedCallback.toLocaleString() + ";\n< / script > " );
24          }
25 
26          var item = null;
27          if (container) {
28              var radio =  " < input type = \ " radio\ "  id = \ " __opt_id\ "  name = \ " __opt\ "  value = \ ""   +  url  +   " \ "  key = \ ""   +  key  +   " \ "  {checked} onclick = \ ""   +  selectedCallbackName  +   " ();\ " > "  + text;
29              if (selected)
30                  radio = radio.replace( " {checked} " " checked " );
31              else
32                  radio = radio.replace( " {checked} " "" );
33 
34              item = new Object();
35              item.body = radio;
36              item.key = key;
37              container.innerHTML += radio;
38          }
39          return item;
40      }
41  }

 

search.html文件:

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< html >
< head >
    
< title > General Search  </ title >
    
< style  type ="text/css" >
        .search_panel_css
        
{
            text-align
:  center ;
            margin-top
:  130px ;
        
}
        .search_logo_css
        
{
            margin-bottom
:  40px ;
        
}
        .search_select_css
        
{
            font-size
: 14px ;
            font-family
: 微软雅黑 ;
            margin-bottom
:  20px ;
        
}
        .search_text_css
        
{
            width
:  300px ;
            height
:  26px ;
            font-size
:  20px ;
        
}
        .search_button_css
        
{
            font-family
: 微软雅黑 ;
            margin-top
:  20px ;
            width
: 120px ;
            height
:  26px ;
        
}
    
</ style >
</ head >
< body >
    
< div  id ="searchPanel"  class ="search_panel_css" >
        
< img  alt =""  id ="search_logo"  src ="images/example.gif"  class ="search_logo_css"   />< br  />
        
< span  id ="search_select"  class ="search_select_css" ></ span >
        
< br  />
        
< input  id ="search_text"  type ="text"  class ="search_text_css"   />
        
< input  id ="search_button"  type ="button"  value ="搜    索"  class ="search_button_css"   />
    
</ div >
</ body >

< script  language ="javascript"  type ="text/javascript"  src ="search_engine_assistant.js" ></ script >

< script  language ="javascript"  type ="text/javascript" >
    
var  sea  =   new  search_engine_assistant();
    sea.create([
        {
            text: 
" 本站 " ,
            url: 
" http://www.example.com/search/q={0} " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
true ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/example.gif " ;
                document.getElementById(
" search_button " ).value  =   " 搜索本站 " ;
            }
        }, {
            text: 
" 百度 " ,
            url: 
" http://www.baidu.com/s?wd={0} " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
false ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/baidu.gif " ;
                document.getElementById(
" search_button " ).value  =   " 百度一下 " ;
            }
        }, {
            text: 
" 谷歌 " ,
            url: 
" http://www.google.cn/search?hl=zh-CN&q={0}&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&oq= " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
false ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/google.gif " ;
                document.getElementById(
" search_button " ).value  =   " 谷歌更强大 " ;
            }
        }, {
            text: 
" 搜狗 " ,
            url: 
" http://www.sogou.com/web?query={0}&_asf=www.sogou.com&_ast=1228659410&w=01019900&p=40040100 " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
false ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/sogou.gif " ;
                document.getElementById(
" search_button " ).value  =   " 搜狗搜索 " ;
            }
        }, {
            text: 
" 易搜 " ,
            url: 
" http://www.yisou.com/search:{0} " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
false ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/yisou.gif " ;
                document.getElementById(
" search_button " ).value  =   " 一搜就到 " ;
            }
        }, {
            text: 
" 爱问 " ,
            url: 
" http://iask.sina.com.cn/search_engine/search_knowledge_engine.php?key={0}&classid=0&title=%B0%A2%CB%B9&gjss=0&x=29&y=12 " ,
            key: 
" {0} " ,
            container: document.getElementById(
" search_select " ),
            selected: 
false ,
            selectedCallback: 
function () {
                document.getElementById(
" search_logo " ).src  =   " images/iask.gif " ;
                document.getElementById(
" search_button " ).value  =   " 爱问才会赢 " ;
            }
        }

],
    document.getElementById(
" search_text " ),
    document.getElementById(
" search_button " ),
    
function (url) {
        window.open(url);
    });
</ script >

</ html >

 

话说别人家做的都不是这样啦,呵呵,好处应该很明显,改动很微妙而且扩展性好,坏处就是代码多了点,还有浏览器要支持脚本。而且放到站点上,最好加一个escape(textbox.value),不过也无所谓了,就拿百度Google来说,就这样都把它们攻残了,还混啥呀!

继续看书!

转载于:https://www.cnblogs.com/volnet/archive/2008/12/08/search_engine_assistant.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值