JavaScript を使用して検索ツールバーを作成する
中国電子科学技術大学ソフトウェア学部 03 年 1 号 Zhou yinghui
: 最終的な効果
2: 原則
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&送信=
少し乱雑に見えるので、単純化しましょう: http://search.cn.yahoo.com/search?&p=%D6%D0%B9%FA
これがキーです。&p=%D6%D0%B9%FA は検索のキーワード パラメーターで、%D6%D0%B9%FA は「中国」です。
URLエンコーディング。そのようなエンコーディングを構築できれば問題ありません。
3: URLエンコード
JavaScript の encodeURIComponent() 関数を使用すると、エンコード作業を完了できます。
たとえば、上の例では、「http://search.cn.yahoo.com/search?&p="+encodeURIComponent("China");」を使用できます。
4: コード
(プラス記号をクリックして展開します)
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Search.aspx.cs" Inherits="Search" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
4
5 <html xmlns=" http://www.w3.org/1999/xhtml " >
6 <head runat="サーバー">
7 <title>検索</title>
8 <script language="javascript" type="text/javascript">
9 // <!CDATA[
10
11 関数 GetEncodeOfKey()
12 {
13 var strKey = window.document.getElementById("Text_Key").value;
14 return encodeURIComponent(strKey);
15}
16
17 関数 GetUrl(サイト)
18 {
19 var encode=GetEncodeOfKey();
20
21 //ウェブ
22 if(document.getElementById("RadioButtonList_Kind_0").checked)
23 {
24 if(site=="google")
25 {
26 return " http://www.google.com/search?q="+encode+"&ei=UTF-8 ";
27}
28 その他
29 {
30 return " http://search.yahoo.com/search?p="+encode+"&ei=UTF-8 ";
31}
32}
33 //mp3
34 else if(document.getElementById("RadioButtonList_Kind_1").checked)
35 {
36 if(site=="google")
37 {
38 return " http://www.google.com/search?q="+encode +" mp3"+"&ei=UTF-8";
39 }
他40
41 {
42 return " http://audio.search.yahoo.com/search/audio?&p="+encode+"&ei=UTF-8 ";
43
44}
45 }
46 //画像
47 else if(document.getElementById("RadioButtonList_Kind_2").checked)
48 {
49 if(site=="google")
50{
51 return " http://images.google.com/images?q="+encode+"&ei=UTF-8 ";
52 }
53 その他
54 {
55 return " http://images.search.yahoo.com/search/images?p="+encode+"&ei=UTF-8 ";
56 }
57 }
58 その他
59 {
60 //アラート("エラー");
61 }
62
63
64}
65
66 関数 Button_Google_onclick()
67 {
68 window.open(GetUrl("google"));
69 }
70
71 関数 Button_Yahoo_onclick()
72 {
73 window.open(GetUrl("yahoo"));
74}
75
76 // ]]>
77 </スクリプト>
78 </頭>
79 <本体>
80 <form id="form1" runat="server">
81 <ディビジョン>
82<br />
83<br />
84 <strong><span style="font-size: 24pt; color: #336633">検索<br />
85 </スパン></strong>
86 </div>
87 <hr style="position:相対" />
88<br />
89 <テーブルスタイル="左: 0px; 位置: 相対; トップ: 0px">
90 <tr>
91 <td style="幅: 31px; 高さ: 21px">
92 <span style="font-family: Terminal">キー</span></td>
93 <td style="幅: 253px; 高さ: 21px">
94 <input id="Text_Key" style="width: 248px;position:相対" type="text" /></td>
95 <td style="幅: 175px; 高さ: 21px">
96 <asp:RadioButtonList ID="RadioButtonList_Kind" runat="server"RepeatDirection="水平"
97 スタイル="位置: 相対" フォント名="ターミナル">
98 <asp:ListItem Selected="True">ウェブ</asp:ListItem>
99 <asp:ListItem>MP3</asp:ListItem>
100 <asp:ListItem>画像</asp:ListItem>
101 </asp:ラジオボタンリスト></td>
102 </tr>
103 <tr>
104 <td style="width: 31px">
105 </td>
106 <tdcolspan="2">
107 <input id="Button_Google" style="width: 80px;position:相対" type="button" value="Google" onclick="return Button_Google_onclick()" />
108
109 <input id="Button_Yahoo" style="左: -29px; 幅: 104px; 位置: 相対" type="ボタン"
110 value="Yahoo!" onclick="return Button_Yahoo_onclick()" /></td>
111 </tr>
112 </テーブル>
113<br />
114 <hr style="position:相対" />
115 <asp:HyperLink ID="HyperLink_Home" runat="server" NavigateUrl="~/Default.aspx" Style="position:relative">ホーム</asp:HyperLink></form>
116 </ボディ>
117 </html>
118