一:最终效果
二:原理
如果你在yahoo中搜索“中国”,那么在浏览器的地址栏将得到这样一串地址:http://search.cn.yahoo.com/search?ei=gbk&fr=fp-tab-web-ycn&meta=vl%
3dlang_zh-cn%26vl%3dlang_zh-tw&pid=ysearch&source=ysearch_www_hp_button
&p=%d6%d0%b9%fa&submit=
看上去有些乱了,简化一下:http://search.cn.yahoo.com/search?&p=%d6%d0%b9%fa
这就是关键.其中&p=%d6%d0%b9%fa是搜索的关键字参数,而%d6%d0%b9%fa是“中国”的
url编码。ok,我们只要能构造出这样的编码就好了。
三:url编码
javascript的encodeuricomponent()函数可以完成编码工作。
比如上面的例子我们可以用“http://search.cn.yahoo.com/search?&p=”+encodeuricomponent(“中国”);来完成。
四:代码
(点击加号展开)
代码如下:
 <%@ page language="c#" autoeventwireup="true" codefile="search.aspx.cs" inherits="search" %> 
 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml" > 
 <head runat="server"> 
     <title>search</title> 
 <script language="javascript" type="text/javascript"> 
 // <!cdata[ 
 function getencodeofkey() 
 { 
     var strkey = window.document.getelementbyid("text_key").value;       
     return  encodeuricomponent(strkey);  
 } 
 function geturl(site) 
 { 
     var encode=getencodeofkey(); 
     //web 
     if(document.getelementbyid("radiobuttonlist_kind_0").checked) 
     { 
         if(site=="google") 
         { 
             return "http://www.google.com/search?q="+encode+"&ei=utf-8"; 
         } 
         else 
         { 
             return "http://search.yahoo.com/search?p="+encode+"&ei=utf-8"; 
         } 
     } 
     //mp3 
     else if(document.getelementbyid("radiobuttonlist_kind_1").checked) 
     { 
         if(site=="google") 
         { 
             return "http://www.google.com/search?q="+encode+" mp3"+"&ei=utf-8"; 
         } 
         else 
         { 
             return "http://audio.search.yahoo.com/search/audio?&p="+encode+"&ei=utf-8"; 
         } 
     } 
     //img 
     else if(document.getelementbyid("radiobuttonlist_kind_2").checked) 
     { 
         if(site=="google") 
         { 
             return "http://images.google.com/images?q="+encode+"&ei=utf-8"; 
         } 
         else 
         { 
             return "http://images.search.yahoo.com/search/images?p="+encode+"&ei=utf-8"; 
         } 
     } 
     else 
     { 
         //alert("err"); 
     } 
      
 } 
 function button_google_onclick()  
 { 
     window.open(geturl("google")); 
 } 
 function button_yahoo_onclick()  
 { 
     window.open(geturl("yahoo")); 
 } 
 // ]]> 
 </script> 
 </head> 
 <body> 
     <form id="form1" runat="server"> 
     <p> 
         <br /> 
         <br /> 
         <strong><span style="font-size: 24pt; color: #336633">search<br /> 
         </span></strong> 
     </p> 
     <hr style="position: relative" /> 
         <br /> 
         <table style="left: 0px; position: relative; top: 0px"> 
             <tr> 
                 <td style="width: 31px; height: 21px"> 
                     <span style="font-family: terminal">key</span></td> 
                 <td style="width: 253px; height: 21px"> 
                     <input id="text_key" style="width: 248px; position: relative" type="text" /></td> 
                 <td style="width: 175px; height: 21px"> 
                     <asp:radiobuttonlist id="radiobuttonlist_kind" runat="server" repeatdirection="horizontal" 
                         style="position: relative" font-names="terminal"> 
                         <asp:listitem selected="true">web</asp:listitem> 
                         <asp:listitem>mp3</asp:listitem> 
                         <asp:listitem>image</asp:listitem> 
                     </asp:radiobuttonlist></td> 
             </tr> 
             <tr> 
                 <td style="width: 31px"> 
                 </td> 
                 <td colspan="2"> 
                     <input id="button_google" style="width: 80px; position: relative" type="button" value="google" onclick="return button_google_onclick()" /> 
                               
                     <input id="button_yahoo" style="left: -29px; width: 104px; position: relative" type="button" 
                         value="yahoo!" onclick="return button_yahoo_onclick()" /></td> 
         </table> 
         <br /> 
         <hr style="position: relative" /> 
         <asp:hyperlink id="hyperlink_home" runat="server" navigateurl="~/default.aspx" style="position: relative">home</asp:hyperlink></form> 
 </body> 
 </html>
【相关推荐】
1. javascript免费视频教程
2. javascript运动框架之多值运动的具体介绍(四)
3. javascript运动框架之多物体任意值运动的示例代码分享(三)
4. javascript运动框架之如何解决防抖动问题、悬浮对联(二)
5. javascript运动框架之如何解决速度正负取整问题(一)
以上就是通过javascript实现搜索工具栏的实例详解的详细内容。
   
 
   