一:最終效果
二:原理
如果你在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實現搜尋工具列的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!