当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用javascript打造搜索工具栏

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

ASP.NET 中的 用javascript打造搜索工具栏


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 50 ::
收藏到网摘: n/a

一:最终效果

二:原理

如果你在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">
<div>
<br />
<br />
<strong><span style="font-size: 24pt; color: #336633">Search<br />
</span></strong>
</div>
<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>