介绍

本文会为大家展示如果使用VS 2008 来创建基于IE8 的搜索提供程序, 以及在其中添加文本搜索建议和带有图片的搜索建议.

目的

  • 学习如何使用VS 2008 来制作自己的搜索提供程序

步骤1 – 创建搜索提供程序项目

  1. 打开VS 2008, 选择File -> New -> Project…:

  1. 在弹出的项目创建向导种选择Visual C# -> Web -> ASP.NET Web Application:

  1. 输入项目名称为 SearchDemo并点击OK按钮创建项目:

  1. SearchDemo项目上右击选择其Properties,属性窗口中选择Web, 并将其Specific Port设置为9999:

  1. SearchDemo项目上右击选择Add -> New Item…:

  1. 在弹出的新建对话框中选择XML File, 并输入文件名为Provider.xml, 点击Add按钮创建文件:

  1. 打开Provider.xml文件将下面代码覆盖该文件原有内容:
<?xml version="1.0" encoding="utf-8" ?>

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">

<ShortName>Web Search</ShortName>

<Description>Use SSW to search the Web.</Description>

<Tags>example web</Tags>

<Contact>admin@ssw.com.au</Contact>>

<Url type="text/html"

template="http://localhost:9999/?q={searchTerms}"/>

<LongName>Test Web Search</LongName>

<Query role="example" searchTerms="cat" />

<Developer>SSW Development Team</Developer>

<Attribution>

Search data Copyright 2005, SSW Inc., All Rights Reserved

</Attribution>

<SyndicationRight>open</SyndicationRight>

<AdultContent>false</AdultContent>

<Language>en-au</Language>

<OutputEncoding>UTF-8</OutputEncoding>

<InputEncoding>UTF-8</InputEncoding>

</OpenSearchDescription>

  1. 然后打开Default.aspx页面, 将下面内容覆盖该页面中所有内容:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SearchDemo._Default" %>

<!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 id="Head1" runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

<a href="#" onclick="window.external.AddSearchProvider('http://localhost:9999/Provider.xml')">

Add Search Provider Example</a>

</div>

</form>

</body>

</html>

  1. 然后选择Debug进行调试:

  1. 第一次调试会弹出如下对话框, 选择OK即可:

  1. 调试运行成功后可以看到在IE中有如下界面:

  1. 选择Add Search Provider Example链接, 在弹出的窗口中选择OK进行我们搜索提供程序的添加:

  1. 添加完成后选择IE地址栏右侧搜索栏的下拉箭头, 可以看到我们制作的Web Search已经被成功添加了:

  1. 点击选择Web Search搜索提供程序, 在搜索栏中随便输入一个关键字并点击按钮:

  1. 最后看到地址栏地址如下则表示我们的搜索提供程序创建成功:

  1. 这样我们创建完成了一个最基本的搜索提供程序, 然后我们对其进行扩展,

步骤2 – 添加基于JSON方式的搜索建议

  1. SearchDemo项目上右击选择Add -> New Item…:

  1. 在弹出的新建对话框中选择Web Form, 并输入文件名为GetInfo.aspx, 点击Add按钮创建文件:

  1. 将下面代码覆盖GetInfo.aspx中已有内容:
<%@ Page Language="C#" AutoEventWireup="true" Inherits="SearchDemo.GetInfo" %>

["<%=HttpUtility.HtmlEncode(Request["q"])%>",

["<%=HttpUtility.HtmlEncode(Request["q"])%>","<%=HttpUtility.HtmlEncode(Request["q"])%> and more","<%=HttpUtility.HtmlEncode(Request["q"])%> ","search <%=HttpUtility.HtmlEncode(Request["q"])%> in Google","<%=HttpUtility.HtmlEncode(Request["q"])%>.com","<%=HttpUtility.HtmlEncode(Request["q"])%> and so on"],

["7,390,000 results","17,900,000 results","25,700,000 results","1,220,000,000 results","1 result","17,600,000 results"],

["http://example.com?q=sears","http://example.com?q=search+engines","http://example.com?q=search+engine","http://example.com?q=search","http://example.com?q=sears.com","http://example.com?q=seattle+times"]]

  1. 保存后打开Provider.xml文件将所有内容替换为如下内容:
<?xml version="1.0" encoding="utf-8" ?>

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">

<ShortName>Web Search</ShortName>

<Description>Use SSW to search the Web.</Description>

<Tags>example web</Tags>

<Contact>admin@ssw.com.au</Contact>>

<Url type="text/html"

template="http://localhost:9999/?q={searchTerms}"/>

<Url type="application/x-suggestions+json"

template="http://localhost:9999/GetInfo.aspx?q={searchTerms}" />

<LongName>Test Web Search</LongName>

<Query role="example" searchTerms="cat" />

<Developer>SSW Development Team</Developer>

<Attribution>

Search data Copyright 2005, SSW Inc., All Rights Reserved

</Attribution>

<SyndicationRight>open</SyndicationRight>

<AdultContent>false</AdultContent>

<Language>en-au</Language>

<OutputEncoding>UTF-8</OutputEncoding>

<InputEncoding>UTF-8</InputEncoding>

</OpenSearchDescription>

黄色高亮部分为在原来基础添加的内容, 也可以直接添加这部分内容.

  1. 添加完成后点击调试按钮进行调试, 并选择搜索框后的下拉按钮中的Manage Search Providers:

  1. 在窗口中移除我们之前添加的Web Search搜索提供程序:

  1. 返回 http://localhost:9999/ 页面后点击页面上的Add Search Provider Example 链接并安装搜索提供程序:

  1. 然后并选择搜索框后的下拉按钮中的Web Search:

  1. 选择后在搜索框中输入任意关键字:

  1. 这里我们可以看到搜索建议效果.

步骤3 – 添加基于XML方式的带有图片的搜索建议

  1. SearchDemo项目上右击选择Add -> New Item…:

  1. 在弹出的新建对话框中选择Web Form, 并输入文件名为GetVInfo.aspx, 点击Add按钮创建文件:

  1. 将下面代码覆盖GetVInfo.aspx中已有内容:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetVInfo.aspx.cs" Inherits="SearchDemo.GetVInfo" %>

<SearchSuggestion>

<Query><%=HttpUtility.HtmlEncode(Request["q"])%></Query>

<Section>

<Item>

<Text><%=HttpUtility.HtmlEncode(Request["q"])%> 360</Text>

<Description>The official Xbox website from Microsoft</Description>

<Url>http://www.xbox.com</Url>

</Item>

<Item>

<Text><%=HttpUtility.HtmlEncode(Request["q"])%> cheats</Text>

<Description>Codes and walkthroughs</Description>

</Item>

<Item>

<Text><%=HttpUtility.HtmlEncode(Request["q"])%> games</Text>

</Item>

<Item>

<Text><%=HttpUtility.HtmlEncode(Request["q"])%> Consoles</Text>

<Description>Game console systems and packages at a great deal.</Description>

<Image source="http://localhost:9999/1.jpg" alt="Xbox 360 Consoles" width="75" height="75"/>

<Url>http://localhost:9999/</Url>

</Item>

</Section>

</SearchSuggestion>

  1. 任意找一张图片(可以使用我们和文档一同提供的图片1.jpg)命名为1.jpg, 并辅之该图片, 选择项目SearchDemo后, 按Ctrl+V键进行粘贴, 这样该图片就加入到项目SearchDemo根目录了:

  1. 然后打开Provider.xml文件将所有内容替换为如下内容:
<?xml version="1.0" encoding="utf-8" ?>

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">

<ShortName>Web Search</ShortName>

<Description>Use SSW to search the Web.</Description>

<Tags>example web</Tags>

<Contact>admin@ssw.com.au</Contact>>

<Url type="text/html"

template="http://localhost:9999/?q={searchTerms}"/>

<Url type="application/x-suggestions+xml"

template="http://localhost:9999/GetVInfo.aspx?q={searchTerms}" />

<LongName>Test Web Search</LongName>

<Query role="example" searchTerms="cat" />

<Developer>SSW Development Team</Developer>

<Attribution>

Search data Copyright 2005, SSW Inc., All Rights Reserved

</Attribution>

<SyndicationRight>open</SyndicationRight>

<AdultContent>false</AdultContent>

<Language>en-au</Language>

<OutputEncoding>UTF-8</OutputEncoding>

<InputEncoding>UTF-8</InputEncoding>

</OpenSearchDescription>

黄色高亮部分为在原来基础修改的内容, 也可以直接添加这部分内容.

  1. 添加完成后点击调试按钮进行调试, 并选择搜索框后的下拉按钮中的Manage Search Providers:

  1. 在窗口中移除我们之前添加的Web Search搜索提供程序:

  1. 返回 http://localhost:9999/ 页面后点击页面上的Add Search Provider Example 链接并安装搜索提供程序:

  1. 然后并选择搜索框后的下拉按钮中的Web Search:

  1. 选择后在搜索框中输入任意关键字:

  1. 这里我们可以看到带有图片的搜索建议效果.

总结

在本文中我们学习了如何定制自己的搜索提供程序, 以及添加两种样式的搜索建议, 这些只是一个基础的知识, 在其中还可以扩展很多东西.

PS: Open Day 的时候大家都照了那么多照片, 给我发点!

转载于:https://www.cnblogs.com/WilsonWu/archive/2008/10/21/1315580.html

IE 8 中自定义自己的 Search Provider (搜索提供程序)相关推荐

  1. 如何在ASP.NET Core中自定义Azure Storage File Provider

    主题:如何在ASP.NET Core中自定义Azure Storage File Provider 作者: Lamond Lu 地址:  https://www.cnblogs.com/lwqlun/ ...

  2. asp绑定gridview属性_如何在ASP.NET Core中自定义Azure Storage File Provider

    主题:如何在ASP.NET Core中自定义Azure Storage File Provider 作者: Lamond Lu 地址:  https://www.cnblogs.com/lwqlun/ ...

  3. .net连接Sql时出现已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用。) ...

    已成功与服务器建立连接,但是在登录过程中发生错误. (provider: TCP 提供程序, error: 0 - 指定的网络名不再可用.) 今天早上的程序还好好的,下午休息后打开程序,用户登录后发现 ...

  4. 已成功与服务器建立连接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0-指定的网络名不再可用。)(Microsoft SQL Server,错误:64)

    问题的发生:今天处于公网的测试服务器数据库SQL SERVER 2008 在连接时突然报错: 已成功与服务器建立连接,但是在登录过程中发生错误.(provider:TCP提供程序,error:0-指定 ...

  5. 解决sql连接时出现的“已成功与服务器建立连接,但是在登录过程中发生错误。(provider:TCP提供程序,error:0-指定的网络名不再可用。)”问题

    注:个人经验,希望可以帮到你喽:) 今天我又又又又又双叒叕出现这个问题了2020-03-25 这个新方法绝对可以帮到你,右击我的电脑,打开计算机管理,找到SQL SERVER网络配置,所有已启用选为& ...

  6. 小程序自定义搜索框_将自定义搜索提供程序添加到Windows 7以及高级搜索技巧

    小程序自定义搜索框 Disclaimer: Many of my tips have crashed cars, broken lights, and caused lawnmowers to go ...

  7. Binary Search二分法搜索C++程序

    二分法基本上学计算机的都听过,但是有人不知道的就是其实二分法是减治法的思想. 所谓减治法和分治法有一个主要差别就是减治法是减去一般,就是分治之后只需要解决原问题的一半就可以了得到全局问题的解了.所以速 ...

  8. 如何在ASP.NET Core中编写自定义日志记录提供程序

    目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...

  9. Jupyter notebook中自定义支持天软TSl语言的魔术命令

    自定义支持TSL的魔术命令 前言 功能 使用范例 核心代码 相关链接 前言 越来越习惯在jupyter notebook中进行数据分析,但是平时也离不开天软TSL,频繁在两者之间切换了切换去也麻烦,在 ...

最新文章

  1. Matlab与随机变量和样本的数字特征
  2. ElasticSearch+聚合+Aggregation+示例
  3. mysql 1146错误
  4. html5表单与PHP交互
  5. java能不能修改文件大小信息_java上机考试3
  6. 蓝桥杯 ALGO-150 算法训练 6-1 递归求二项式系数值
  7. VC中海量文件读写类设计与应用
  8. 解决Eclipse建Maven项目module无法转换为2.5
  9. 软件著作权统计源程序量,统计php代码行数
  10. mbedtls学习--大数运算
  11. python numpy读取数据_numpy中以文本的方式存储以及读取数据方法
  12. 基于 SOFAArk 和 SOFADashboard 实现动态模块管控 | Meetup#2 回顾
  13. Linux安装RabbitMQ详细教程
  14. jupyter 内核似乎挂掉了 它很快将自动重启---解决方案
  15. C语言规定 在一个源程序中 main函数,C语言规定:在一个源程序中,main函数的位置()A.必须在程序的最开始B.必须在系统调用的库函数的_搜题易...
  16. [导入]把域名转到了GoDaddy下
  17. 三七互娱-游戏运维岗笔试题(无答案)
  18. 短视频seo搜索优化主要内容
  19. 缠论插件_缠论通达信_缠论量化
  20. 微信小游戏一笔画通关代码---------深度优先图搜问题

热门文章

  1. 50 xen虚拟化技术基础、xen虚拟化技术进阶
  2. 微软发布屏蔽Win10升级的官方办法
  3. liunx之tar 命令
  4. 浅谈悲催的“期末考试”
  5. 用jquery验证用户名是否有效或重复
  6. 即时通信是机遇也是挑战
  7. 网络工程师的经典爱情观
  8. 6. 简单又复杂的“运算符”,建议你看一哈
  9. 经典算法——堆排序笔试题
  10. Yii-mongo操作