一:最终效果
二:原理
如果你在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>
登录后复制
【相关推荐】
2. JavaScript运动框架之多值运动的具体介绍(四)
3. JavaScript运动框架之多物体任意值运动的示例代码分享(三)
4. JavaScript运动框架之如何解决防抖动问题、悬浮对联(二)
5. JavaScript运动框架之如何解决速度正负取整问题(一)
以上就是通过javascript实现搜索工具栏的实例详解的详细内容,更多请关注Work网其它相关文章!