CN1889039A - 基于xml实现通用浏览器工具条的方法 - Google Patents
基于xml实现通用浏览器工具条的方法 Download PDFInfo
- Publication number
- CN1889039A CN1889039A CN 200610061337 CN200610061337A CN1889039A CN 1889039 A CN1889039 A CN 1889039A CN 200610061337 CN200610061337 CN 200610061337 CN 200610061337 A CN200610061337 A CN 200610061337A CN 1889039 A CN1889039 A CN 1889039A
- Authority
- CN
- China
- Prior art keywords
- tool bar
- xml
- ref
- name
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于XML实现通用浏览器工具条的方法,旨在解决现有浏览器工具条技术存在的不能通过简单的配置完成工具条功能需求的缺陷,而提供一种基于XML建立一个简单、通用的浏览器工具条的方法。通过开放的XML文档来组织和表示浏览器工具条功能,只需要修改XML内容就可以调整工具条功能。本方法包括下列步骤:设计浏览器工具条的XML数据定义格式,建立浏览器工具条的XML技术标准;根据上述工具条的XML数据定义格式创建浏览器工具条XML文件;通过XML操作类读取工具条XML数据;根据XML节点数据生成工具条按钮数据结构对象;处理工具条图片及控件元素;将浏览器工具条绑定到浏览器容器。
Description
技术领域
本发明涉及一种实现浏览器工具条的方法,特别是一种基于XML实现通用浏览器工具条的方法。
背景技术
工具条是由一组工具条按钮或其他功能控件组成的一个特定区域。浏览器工具条是浏览器的扩展应用程序,由位于浏览器顶部的连续的一组按钮或其他功能控件组成的一个整体操作区,以帮助用户快速访问网站及提供特定功能。浏览器工具条是由一组按钮或其他功能控件组成的。从工具条的功能布局和功能设计角度来看,工具条主要由工具条Logo、输入框、功能按钮、下拉菜单、分隔符、Web控件、其他非功能按钮控件等内容组成。
XML是一种可扩展标记性语言。由于其具有开放性、可扩展性,语法严格,支持异构网络数据交换,安全性好等优势,现在已经广泛应用于网络数据通信、电子商务、图书出版等行业。
随着互联网的迅速发展,越来越多的网站采用更加便捷有效的途径来吸引网站用户来访问网站页面和使用网站功能。浏览器工具条就是一个非常有效的途径,浏览器工具条是捆绑于浏览器的网络辅助软件,以帮助用户快速访问网站及提供特定功能。网络用户安装了浏览器工具条后,只要打开浏览器,即可通过浏览器工具条快速访问工具条上的网站页面和使用其提供的功能。
目前,MSN、Alexa、Google、雅虎、百度、新浪、搜狐等大型知名网络运营商提供了自己的浏览器工具条,而绝大多数的网站都还没有自己的工具条,个人更没有自己的个性化工具条。网络上提供的工具条都是基于各个公司内部组织人员进行开发,组成工具条的图标按钮、功能控件由编译好的组件实现,在编译前就已经设计好了,没有提供开放的接口,不能通过简单的配置完成工具条功能需求,所以个性化的浏览器工具条至今仍未得到很好的普及。
现有的浏览器工具条的实现存在以下缺点:
(1)维护成本高。工具条功能的调整都需要改动程序,重新编译,重新测试。
(2)升级非常困难。用户安装工具条软件后,升级工具条需要更新整个组件,从技术实现、网络更新速度等方面都不是最佳做法。
(3)可复用程度低。由于没有提供开放的接口,开发新的工具条时需要重新组织程序代码,代码可复用程度低。
(4)可扩展性很低。封闭的组件很难进行功能的扩展;用户安装工具条后,也不能享受自由调整的最佳体验。
(5)普及应用成本高。要把工具条推广到其他网站,都需要独立开发。如果需要满足普通网络用户可以设计自己的工具条,在这种工具条实现方案下更是难以想象。
发明内容
本发明的目的是针对现有浏览器工具条技术存在的不能通过简单的配置完成工具条功能需求的缺陷,而提供一种基于XML建立一个简单、通用的浏览器工具条的方法。通过开放的XML文档来组织和表示浏览器工具条功能,只需要修改XML内容就可以调整工具条功能。
上述目的采用下述的方法就可以实现:本方法通过开放的XML文档来组织和表示浏览器工具条功能,在硬件PC和XML编程器的环境下操作,包括以下的步骤:
(一)设计浏览器工具条的XML数据定义格式,建立浏览器工具条的XML技术标准。其中包括:
(1)完整地描述工具条的三类内容,第一类是工具条的基本信息,第二类是组成工具条的按钮或控件元素,第三类是工具条使用情况信息;
(2)工具条的基本信息至少包含工具条代码、工具条名称、程序名称、联系邮件地址、下载页面地址、工具条版本号等数据信息;
(3)工具条使用情况信息包含使用类型、校验码等数据信息;
(4)工具条上包含多个按钮或控件元素,每个具体工具条元素至少包含以下数据信息:按钮类型、标题、图片信息、宽度、是否后带分隔符、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、菜单信息;
(5)每个菜单可以包含多个下拉子菜单,每个具体的菜单项至少包含以下数据信息:菜单类型、标题、图片信息、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、更下一层的下拉子菜单信息,菜单定义数据可以进行下层菜单的嵌套;
(6)定义按钮类型、菜单类型、执行的命令代码等数据信息时,用特定的枚举字符串表示;
(7)最外层为工具条XML顶层节点为Toolbar;
(二)根据上述工具条的XML数据定义格式创建浏览器工具条XML文件;
(三)通过XML操作类读取工具条XML数据;
(四)根据XML节点数据生成工具条按钮数据结构对象;
(五)处理工具条图片及控件元素;
(六)将浏览器工具条绑定到浏览器容器。
上面所说的步骤(三)、(四)、(五)的处理流程如下所述:
(1)读取XML开始;
(2)判断XML文件是否存在:如果不存在,则直接进入第(16)步“读取XML结束”;如果存在,则进入下一步;
(3)读取浏览器工具条的基本信息;
(4)依次读取工具条的每一个元素;
(5)读取并判断元素状态是否被禁用:如果正常,则进入下一步;如果被禁用,则直接进入下述的第(14)步“判断是否存在下一个元素”;
(6)保存非按钮控件的宽度、按钮或非按钮的相应命令等相关信息;然后
(7)判断是否为按钮控件:如果不是按钮控件,则进入下一步;如果是按钮控件,则直接进入下面的第(9)步“根据元素信息构造工具条按钮数据”;
(8)保存非按钮控件相关信息,然后进入下一步;
(9)根据所读取的元素信息构造工具条按钮数据结构对象;
(10)判断元素是否有图片:如果没有图片,则设置工具条按钮数据结构的图片属性为没有图片,然后直接进入下面的第(13)步“判断是否存在下拉菜单”;如果有图片则进入下一步
(11)将图片处理后加载到图片列表中;然后
(12)处理不同图片尺寸大小在工具条上的正确显示,再进入下一步
(13)判断是否存在下拉菜单:如果存在下拉菜单,则循环读取所有的子菜单信息,然后进入下一步;如果不存在下拉菜单,则直接进入下一步;
(14)判断是否存在下一个元素:如果存在,则返回上面第(4)步“读取工具条元素”,再重复往下循环;如果不存在下一个元素,则进入下一步
(15)读取工具条使用信息情况的信息;最后
(16)读取XML结束。
本发明的有益效果是,用户可以不需要编写任何代码即可制作自己的浏览器工具条,这就解决了当前建立自己的浏览器工具条的困难,使得浏览器工具条易于普及和推广。
为了使本发明便于理解和更加清晰,下面通过实施例和附图对其作进一步详细说明。
附图说明
图1是实施本发明的方法的个人计算机硬件环境的框图。
图2是基于XML实现通用浏览器工具条的流程图。
图3是处理组织和表示浏览器工具条的XML文件的流程图。
图4是本发明中的一种组织和表示通用浏览器工具条的XMLSchema图。
图5是本发明中的一种组织和表示通用浏览器工具条下拉菜单的XML Schema图。
图6是本发明的一个实施例的浏览器工具条效果图。
图7是通过修改XML内容调整图6的实施例后的效果图。
具体的实施方式
参看上述图1-图7。图1是本发明的方法操作的硬件环境一个人计算机的构成框图。图中示出了浏览器和浏览器工具条在PC机中所处的位置。本发明的方法操作的软件环境只需要对XML文件进行编辑的软件程序,浏览器工具条的运行软件环境是浏览器。
本方法的第(一)步是设计浏览器工具条XML Schema,建立浏览器工具条的XML技术标准。工具条是由一组工具条按钮或其他功能控件组成的一个特定区域。其中包括:
(1)完整地描述工具条的三类内容,第一类是工具条的基本信息,第二类是组成工具条的按钮或控件元素,第三类是工具条使用情况信息;
(2)工具条的基本信息至少包含工具条代码、工具条名称、程序名称、联系邮件地址、下载页面地址、工具条版本号等数据信息;
(3)工具条使用情况信息包含使用类型、校验码等数据信息;
(4)工具条上包含多个按钮或控件元素,每个具体工具条元素至少包含以下数据信息:按钮类型、标题、图片信息、宽度、是否后带分隔符、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、菜单信息;
(5)每个菜单可以包含多个下拉子菜单,每个具体的菜单项至少包含以下数据信息:菜单类型、标题、图片信息、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、更下一层的下拉子菜单信息,菜单定义数据可以进行下层菜单的嵌套;
(6)定义按钮类型、菜单类型、执行的命令代码等数据信息时,用特定的枚举字符串表示;
(7)最外层为工具条XML顶层节点为Toolbar;
按照以上定义,本实施例的浏览器工具条XML的数据定义格式(XSD)如下:<?xml version="1.0"encoding="UTF-8"?><xs:schema elementFormDefault="qualified"xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ButtonItem">
<xs:complexType>
<xs:sequence>
<xs:element ref="ButtonStyle"/>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Width"/>
<xs:element ref="IsPostfixSep"/>
<xs:element ref="Hint"/>
<xs:element ref="CommandCode"/>
<xs:element ref="Link"/>
<xs:element ref="Target"/>
<xs:element ref="Menu"minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ButtonCode"type="xs:string"/>
<xs:attribute name="ReadOnly"type="xs:boolean"/>
<xs:attribute name="State"type="xs:string"/>
</xs:complexType></xs:element><xs:element name="ButtonStyle">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="BUTTON"/>
<xs:enumeration value="DROPDOWN"/>
<xs:enumeration value="WHOLEDROPDOWN"/>
<xs:enumeration value="TEXT_BOX"/>
<xs:enumeration value="COMBO_BOX"/>
<xs:enumeration value="PASSWORD_BOX"/>
<xs:enumeration value="HTML_DYNAMIC"/>
<xs:enumeration value="HTML_WEB"/>
</xs:restriction>
</xs:simpleType></xs:element><xs:element name="Caption"type="xs:string"/><xs:element name="CommandCode"><xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="COMBO_HISTORY_CLEAR"/>
<xs:enumeration value="SMALL_MODAL_DIALOG"/>
<xs:enumeration value="EXE_APP"/>
<xs:enumeration value="POPUP_BLOCKER"/>
<xs:enumeration value="HTML_DYNAMIC_RESHOW"/>
<xs:enumeration value="HTML_DYNAMIC_HIDDEN"/>
<xs:enumeration value="HTML_DYNAMIC_REFRESH"/>
<xs:enumeration value="DO_UPGRADE"/>
<xs:enumeration value="PRINT"/>
<xs:enumeration value="EXPLORE"/>
</xs:restriction></xs:simpleType></xs:element><xs:element name="CustomEmail"type="xs:string"/><xs:element name="CustomToolBarUrl"type="xs:anyURI"/><xs:element name="Hint"type="xs:string"/><xs:element name="Icon"type="xs:string"/><xs:element name="IsPostfixSep"type="xs:boolean"/><xs:element name="Link"type="xs:string"/> <xs:element name="Menu">
<xs:complexType>
<xs:sequence>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Hint"/>
<xs:element ref="MenuItem"maxOccurs="unbounded"/>
</xs:sequence></xs:complexType></xs:element><xs:element name="MenuItem"><xs:complexType>
<xs:sequence>
<xs:element ref="MenuType"/>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Hint"/>
<xs:element ref="CommandCode"/>
<xs:element ref="Link"/>
<xs:element ref="Target"/>
<xs:element ref="Menu"minOccurs="0"/>
</xs:sequence></xs:complexType></xs:element><xs:element name="MenuType"><xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="COMMAND"/>
<xs:enumeration value="CHECK"/>
<xs:enumeration value="SEP"/>
</xs:restriction>
</xs:simpleType></xs:element><xs:element name="Navigation">
<xs:complexType>
<xs:sequence>
<xs:element ref="ButtonItem"maxOccurs="unbounded"/>
</xs:sequence></xs:complexType></xs:element><xs:element name="ProgrameName"type="xs:string"/><xs:element name="Target"type="xs:string"/><xs:element name="ToolBarUrl"type="xs:anyURI"/><xs:element name="Toolbar"><xs:complexType>
<xs:sequence>
<xs:element ref="ToolbarInfo"/>
<xs:element ref="Navigation"/>
<xs:element ref="Validate"/>
</xs:sequence></xs:complexType></xs:element><xs:element name="ToolbarCode"type="xs:string"/><xs:element name="ToolbarInfo"><xs:complexType>
<xs:sequence>
<xs:element ref="ToolbarCode"/>
<xs:element ref="ToolbarName"/>
<xs:element ref="ProgrameName"/>
<xs:element ref="CustomEmail"/>
<xs:element ref="ToolBarUrl"/>
<xs:element ref="CustomToolBarUrl"/>
<xs:element ref="ToolbarVersion"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ToolbarName"type="xs:string"/>
<xs:element name="ToolbarVersion"type="xs:string"/>
<xs:element name="Validate">
<xs:complexType>
<xs:sequence>
<xs:element ref="UseType"/>
<xs:element ref="VerifyCode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UseType"type="xs:byte"/>
<xs:element name="VerifyCode"type="xs:string"/>
<xs:element name="Width"type="xs:short"/></xs:schema>
本方法的第(二)步是根据上述工具条的XML数据定义格式创建浏览器工具条XML文件。一个工具条XML文件表示了一个工具条的功能按钮及布局。图6和图7是一个本发明的方法的实施例效果图,在后面将给出了图6工具条的实施例的具体XML文件的内容。
本方法的第(三)步就是读取工具条XML数据。有了以上用来组织和表示浏览器工具条的开放XML数据格式定义,在通用浏览器工具条处理系统中,通过XML操作类读取工具条XML数据。本方法根据完整描述工具条的三类内容分别读取,分别获取工具条基本信息,获取工具条上的元素,获取工具条使用情况信息。如上所述,图3通过流程图展示了如何处理组织和表示浏览器工具条的XML文件的过程。
本方法的第(四)步就是根据XML节点数据生成工具条按钮数据结构对象。根据本发明的方法,图4是本发明中的一种组织和表示通用浏览器工具条的XML Schema图。工具条上包含多个按钮或控件元素,需要循环读取工具条元素并根据按钮类型枚举字符串值生成工具条按钮数据结构对象。在本发明的方法中,定义枚举字符串分别表示不同的按钮类型和非按钮控件类型。在实现发明的通用浏览器工具条系统中,定义了以下的枚举字符串分别表示:
BUTTON表示普通按钮;
DROPDOWN表示整体下拉按钮;
WHOLEDROPDOWN表示分离下拉按钮;
TEXT_BOX表示文本输入框;
COMBO_BOX表示下拉组合输入框;
PASSWORD_BOX表示密码输入框;
HTML_DYNAMIC表示HTML滚动新闻;
HTML_WEB表示HTML网页内容。
工具条在执行鼠标或键盘响应时,需要执行相应的命令信息。在命令信息中,有的需要提取输入框中的用户输入的数据。本发明的方法采用在命令信息中加入相应占位符的方法来实现此特性。在实现本发明的方法的通用浏览器工具条处理系统中,在命令信息的相应位置中分别加入预定义的[$TEXT_BOX_STRING$]、[$COMBO_BOX_STRING$]、[$PASSWORD_BOX_STRING$]等占位符分别表示文本输入框、下拉组合输入框、密码输入框中用户输入的数据。
同时,在处理整体下拉按钮和分离下拉按钮的工具条元素时,继续根据浏览器工具条XML数据定义格式(参见图5)获取对应的下拉菜单信息。
本方法的第(五)步就是处理工具条图片及控件元素。在以上处理过程中,系统需要读取工具条元素或菜单的图片信息,图片可以是本地图片,也可以是Internet上的图片。在工具条上显示图片时,由于工具条只能通过TB_SETBITMAPSIZE设置一种图片尺寸方案,本发明也包括在工具条上显示不同图片尺寸的方法。该方法解决了在工具条上显示任意尺寸的图片。该方法包括:从浏览器工具条XML获取每个工具条元素的图片尺寸;将图片尺寸等比较调整以适应工具条的固定高度;根据调整后的宽度计算空格组合,用相应的空格填充到标题前面来调整图片在工具条上的显示效果。处理后的工具条图片信息需要设置到工具条按钮数据结构对象中。
当工具条元素是输入框、滚动新闻、网页内容等非按钮控件,需要先把控件信息保存在预先定义的结构中。在工具条上增加按钮数据后需要单独把非按钮控件创建到工具条上。
本方法的第(六)步就是将浏览器工具条绑定到浏览器容器。创建了工具条上的所有工具条按钮数据结构对象后,通过Windows的消息机制即可将按钮绑定到浏览器容器中。如果工具条包含输入框、HTML滚动新闻、HTML网页内容等工具条元素,则需要获取元素所在的位置,在相应位置创建相应的Windows窗体控件。
图6是一个本发明的方法及其装置的实施例效果图。在该实施例中,根据图4和图5浏览器工具条XML数据定义格式,使用XML编辑器设计了以下的XML内容来表示本实施例的工具条:<?xml version="1.0"encoding="utf-16"standalone="no"?><Toolbar><ToolbarInfo>
<ToolbarCode>CKFVKMTNVX</ToolbarCode>
<ToolbarName>综合搜索工具条</ToolbarName>
<ProgrameName>SearchToolbar</ProgrameName>
<CustomEmail>info@ieshow.net</CustomEmail>
<ToolBarUrl>http://www.ieshow.net/SearchToolbar.aspx</ToolBarUrl>
<CustomToolBarUrl/>
<ToolbarVersion>02.04.001</ToolbarVersion></ToolbarInfo><Navigation><ButtonItem ButtonCode="LOGO">
<ButtonStyle>WHOLEDROPDOWN</ButtonStyle>
<Caption/>
<Icon>http://www.ieshow.net/tb_icons/logo/basic/log_100.ico</Icon>
<Width>0</Width>
<IsPostfixSep/>
<Hint>综合搜索</Hint>
<CommandCode/>
<Link/>
<Target/>
<Menu>
<Caption/>
<Icon/>
<Hint/>
<MenuItem>
<MenuType/>
<Caption>首页(&I)</Caption>
<Icon/>
<Hint/>
<CommandCode/>
<Link>http://www.ieshow.net/</Link>
<Target/>
</MenuItem><MenuItem><MenuType>SEP</MenuType><Caption/><Icon/><Hint/><CommandCode/><Link/><Target/></MenuItem><MenuItem><MenuType/><Caption>清除搜索记录(&C)</Caption><Icon/><Hint/><CommandCode>COMBO_HISTORY_CLEAR</CommandCode><Link/><Target/></MenuItem><MenuItem><MenuType/><Caption>在线更新(&U)</Caption><Icon/><Hint/><CommandCode>DO_UPGRADE</CommandCode><Link/><Target/></MenuItem><MenuItem><MenuType>SEP</MenuType><Caption/>
<Icon/>
<Hint/>
<CommandCode/>
<Link/>
<Target/>
</MenuItem>
<MenuItem>
<MenuType/>
<Caption>关于(&A)</Caption>
<Icon/>
<Hint/>
<CommandCode>SMALL_MODAL_DIALOG</CommandCode>
<Link>http://www.ieshow.net/toolbar/toolbar_about.aspx</Link>
<Target/>
</MenuItem>
</Menu></ButtonItem><ButtonItem ButtonCode="INPUT_BOX"><ButtonStyle>COMBO_BOX</ButtonStyle><Caption/><Icon/><Width>147</Width><IsPostfixSep/><Hint/><CommandCode/><Link>http://www.google.cn/search?q=[$COMBO_BOX_STRING$]</Link>
<Target/></ButtonItem><ButtonItem ButtonCode="SEARCH">
<ButtonStyle>WHOLEDROPDOWN</ButtonStyle>
<Caption>网页</Caption>
<Icon>17643.ico</Icon>
<Width>0</Width>
<IsPostfixSep/>
<Hint>搜索网页</Hint>
<CommandCode/>
<Link/>
<Target/>
<Menu>
<Caption/>
<Icon/>
<Hint/>
<MenuItem>
<MenuType/>
<Caption>百度(&B)</Caption>
<Icon/>
<Hint/>
<CommandCode/><Link>http://www.baidu.com/s?wd=[$COMBO_BOX_STRING$]</Link>
<Target/>
</MenuItem>
<MenuItem>
<MenuType/>
<Caption>Google(&G)</Caption>
<Icon/>
<Hint/>
<CommandCode/><Link>http://www.google.cn/search?q=[$COMBO_BOX_STRING$]</Link>
<Target/>
</MenuItem>
</Menu></ButtonItem><ButtonItem ButtonCode="317286"><ButtonStyle>WHOLEDROPDOWN</ButtonStyle><Caption>图片</Caption><Icon>34085.ico</Icon><Width>0</Width><IsPostfixSep>1</IsPostfixSep><Hint>搜索图片</Hint><CommandCode/><Link/><Target/><Menu>
<Caption/>
<Icon/>
<Hint/>
<MenuItem>
<MenuType/>
<Caption>百度(&B)</Caption>
<Icon/>
<Hint/>
<CommandCode/><Link>http://image.baidu.com/i?word=[$COMBO_BOX_STRING$]</Link>
<Target/>
</MenuItem>
<MenuItem>
<MenuType/>
<Caption>Google(&G)</Caption>
<Icon/>
<Hint/>
<CommandCode/><Link>http://images.google.com/images?q=[$COMBO_BOX_STRING$]</Link>
<Target/>
</MenuItem>
</Menu>
</ButtonItem>
<ButtonItem ButtonCode="BAIDU">
<ButtonStyle>BUTTON</ButtonStyle>
<Caption>百度一下</Caption>
<Icon>54934.ico</Icon>
<Width>0</Width>
<IsPostfixSep>1</IsPostfixSep>
<Hint>在百度搜索网页</Hint>
<CommandCode/>
<Link>http://www.baidu.com/s?wd=[$COMBO_BOX_STRING$]</Link>
<Target/>
</ButtonItem>
<ButtonItem ButtonCode="GOOGLE">
<ButtonStyle>BUTTON</ButtonStyle>
<Caption>Google一下</Caption>
<Icon>http://www.ieshow.net/tb_icons/search/basic/100.ico</Icon>
<Width>0</Width>
<IsPostfixSep>1</IsPostfixSep>
<Hint>在Google搜索网页</Hint>
<CommandCode/><Link>http://www.google.cn/search?q=[$COMBO_BOX_STRING$]</Link><Target/></ButtonItem><ButtonItem ButtonCode="327412">
<ButtonStyle>BUTTON</ButtonStyle>
<Caption>拦截弹出窗口</Caption>
<Icon>http://www.ieshow.net/tb_icons/iconset01/basic/is1_145.ico</Icon>
<Width>147</Width>
<IsPostfixSep>1</IsPostfixSep>
<Hint>拦截弹出窗口</Hint>
<CommandCode>POPUP_BLOCKER</CommandCode>
<Link/>
<Target/>
</ButtonItem>
<ButtonItem ButtonCode="BUTTON_WIZARD">
<ButtonStyle>BUTTON</ButtonStyle>
<Caption>想要自己的工具条?</Caption>
<Icon>http://www.ieshow.net/tb_icons/iconset03/basic/is3_114.ico</Icon>
<Width>0</Width>
<IsPostfixSep/>
<Hint>免费自己动手制作工具条</Hint>
<CommandCode/>
<Link>http://www.ieshow.net/web/wizard_start.aspx</Link>
<Target/>
</ButtonItem>
</Navigation>
<Validate>
<UseType>8</UseType>
<VerifyCode>4O+6PBnBA8gvXHId4fa7zLQ</VerifyCode>
</Validate></Toolbar>
本实施例允许最终网络用户安装此浏览器工具条后再自由调整。用户需要调整已安装的工具条时,先找到安装目录下用来组织和表示浏览器工具条的XML文件,再修改XML文件中的内容,修改后只要符合通用浏览器工具条处理系统相应的XML数据定义格式即可。
图7表示的是通过修改XML内容调整图6实施例后的效果图。简单把图6实施例的XML内容在两个地方调整:一是把表示下拉组合输入框的<ButtonStyle>COMBO_BOX</ButtonStyle>修改为表示文本输入框的<ButtonStyle>TEXT_BOX</ButtonStyle>;二是把表示“百度一下”位置的<ButtonItem ButtonCode=″BAIDU″>和表示“Google一下”位置的<ButtonItem ButtonCode=″GOOGLE″>子节点调换一下位置。调整后打开新的浏览器窗口即可以看到图7的效果图。把图7工具条和图6工具条对照,工具条上下拉输入框变为文本输入框;工具条上Google一下和百度一下的按钮调换了位置。
以上的实施例的说明和附图(包括XML节点名称和枚举字符串)是对本发明的举例说明性阐述和解释,而不能被看作对本发明的限制。
Claims (6)
1、一种基于XML实现通用浏览器工具条的方法,通过开放的XML文档来组织和表示浏览器工具条功能,在硬件PC和XML编程器的环境下操作,其特征是包括以下的步骤:
(一)设计浏览器工具条的XML数据定义格式,建立浏览器工具条的XML技术标准,其中包括:
(1)完整地描述工具条的三类内容,第一类是工具条的基本信息,第二类是组成工具条的按钮或控件元素,第三类是工具条使用情况信息;
(2)工具条的基本信息至少包含工具条代码、工具条名称、程序名称、联系邮件地址、下载页面地址、工具条版本号等数据信息;
(3)工具条使用情况信息包含使用类型、校验码等数据信息;
(4)工具条上包含多个按钮或控件元素,每个具体工具条元素至少包含以下数据信息:按钮类型、标题、图片信息、宽度、是否后带分隔符、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、菜单信息;
(5)每个菜单可以包含多个下拉子菜单,每个具体的菜单项至少包含以下数据信息:菜单类型、标题、图片信息、提示信息、执行的命令代码、相应的命令信息、执行命令的目标帧、更下一层的下拉子菜单信息,菜单定义数据可以进行下层菜单的嵌套;
(6)定义按钮类型、菜单类型、执行的命令代码等数据信息时,用特定的枚举字符串表示;
(7)最外层为工具条XML顶层节点Toolbar;
(二)根据上述工具条的XML数据定义格式创建浏览器工具条XML文件;
(三)通过XML操作类读取工具条XML数据;
(四)根据XML节点数据生成工具条按钮数据结构对象;
(五)处理工具条图片及控件元素;
(六)将浏览器工具条绑定到浏览器容器。
2、根据权利要求1所述的基于XML实现通用浏览器工具条的方法,其特征是所说的第(一)步“设计浏览器工具条的XML数据定义格式,建立浏览器工具条的XML技术标准”中的浏览器工具条XML的数据定义格式(XSD)如下:<?xml version="1.0"encoding="UTF-8"?><xs:schema elementFormDefault="qualified"xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="ButtonItem">
<xs:complexType>
<xs:sequence>
<xs:element ref="ButtonStyle"/>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Width"/>
<xs:element ref="IsPostfixSep"/>
<xs:element ref="Hint"/>
<xs:element ref="CommandCode"/>
<xs:element ref="Link"/>
<xs:element ref="Target"/>
<xs:element ref="Menu"minOccurs="0"/>
</xs:sequence>
<xs:attribute name="ButtonCode"type="xs:string"/>
<xs:attribute name="ReadOnly"type="xs:boolean"/>
<xs:attribute name="State"type="xs:string"/>
</xs:complexType></xs:element><xs:element name="ButtonStyle">
<xs:simple Type>
<xs:restriction base="xs:string">
<xs:enumeration value="BUTTON"/>
<xs:enumeration value="DROPDOWN"/>
<xs:enumeration value="WHOLEDROPDOWN"/>
<xs:enumeration value="TEXT_BOX"/>
<xs:enumeration value="COMBO_BOX"/>
<xs:enumeration value="PASSWORD_BOX"/>
<xs:enumeration value="HTML_DYNAMIC"/>
<xs:enumeration value="HTML_WEB"/>
</xs:restriction>
</xs:simpleType></xs:element><xs:element name="Caption"type="xs:string"/><xs:element name="CommandCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="COMBO_HISTORY_CLEAR"/>
<xs:enumeration value="SMALL_MODAL_DIALOG"/>
<xs:enumeration value="EXE_APP"/>
<xs:enumeration value="POPUP_BLOCKER"/>
<xs:enumeration value="HTML_DYNAMIC_RESHOW"/>
<xs:enumeration value="HTML_DYNAMIC_HIDDEN"/>
<xs:enumeration value="HTML_DYNAMIC_REFRESH"/>
<xs:enumeration value="DO_UPGRADE"/>
<xs:enumeration value="PRINT"/>
<xs:enumeration value="EXPLORE"/>
</xs:restriction>
</xs:simpleType></xs:element><xs:element name="CustomEmail"type="xs:string"/><xs:element name="CustomToolBarUrl"type="xs:anyURI"/><xs:element name="Hint"type="xs:string"/>
<xs:element name="Icon"type="xs:string"/>
<xs:element name="IsPostfixSep"type="xs:boolean"/>
<xs:element name="Link"type="xs:string"/>
<xs:element name="Menu">
<xs:complexType>
<xs:sequence>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Hint"/>
<xs:element ref="MenuItem"maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType></xs:element><xs:element name="MenuItem">
<xs:complexType>
<xs:sequence>
<xs:element ref="MenuType"/>
<xs:element ref="Caption"/>
<xs:element ref="Icon"/>
<xs:element ref="Hint"/>
<xs:element ref="CommandCode"/>
<xs:element ref="Link"/>
<xs:element ref="Target"/>
<xs:element ref="Menu"minOccurs="0"/>
</xs:sequence>
</xs:complexType></xs:element><xs:element name="MenuType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="COMMAND"/>
<xs:enumeration value="CHECK"/>
<xs:enumeration value="SEP"/>
</xs:restriction>
</xs:simpleType></xs:element><xs:element name="Navigation"><xs:complexType>
<xs:sequence>
<xs:element ref="ButtonItem"maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType></xs:element><xs:element name="ProgrameName"type="xs:string"/><xs:element name="Target"type="xs:string"/><xs:element name="ToolBarUrl"type="xs:anyURI"/><xs:element name="Toolbar">
<xs:complexType>
<xs:sequence>
<xs:element ref="ToolbarInfo"/>
<xs:element ref="Navigation"/>
<xs:element ref="Validate"/>
</xs:sequence>
</xs:complexType></xs:element><xs:element name="ToolbarCode"type="xs:string"/><xs:element name="ToolbarInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="ToolbarCode"/>
<xs:element ret="ToolbarName"/>
<xs:element ref="ProgrameName"/>
<xs:element ref="CustomEmail"/>
<xs:element ref="ToolBarUrl"/>
<xs:element ref="CustomToolBarUrl"/>
<xs:element ref="Toolbar Version"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ToolbarName"type="xs:string"/>
<xs:element name="ToolbarVersion"type="xs:string"/>
<xs:element name="Validate">
<xs:complexType>
<xs:sequence>
<xs:element ref="UseType"/>
<xs:element ref="VerifyCode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UseType"type="xs:byte"/>
<xs:element name="VerifyCode"type="xs:string"/>
<xs:element name="Width"type="xs:short"/></xs:schema>
3、根据权利要求1或2所述的基于XML实现通用浏览器工具条的方法,其特征是所说的步骤(三)、(四)、(五)的处理流程如下所述:
(1)读取XML开始;
(2)判断XML文件是否存在:如果不存在,则直接进入第(16)步“读取XML结束”;如果存在,则进入下一步;
(3)读取浏览器工具条的基本信息;
(4)依次读取工具条的每一个元素;
(5)读取并判断元素状态是否被禁用:如果正常,则进入下一步;如果被禁用,则直接进入下述的第(14)步“判断是否存在下一个元素”;
(6)保存非按钮控件的宽度、按钮或非按钮的相应命令等相关信息;然后
(7)判断是否为按钮控件:如果不是按钮控件,则进入下一步;如果是按钮控件,则直接进入下面的第(9)步“根据元素信息构造工具条按钮数据”;
(8)保存非按钮控件相关信息,然后进入下一步;
(9)根据读取的元素信息构造工具条按钮数据结构对象;
(10)判断元素是否有图片:如果没有图片,则设置工具条按钮数据结构的图片属性为没有图片,然后直接进入下面的第(13)步“判断是否存在下拉菜单”;如果有图片则进入下一步
(11)将图片处理后加载到图片列表中;然后
(12)处理不同图片尺寸大小在工具条上的正确显示,再进入下一步
(13)判断是否存在下拉菜单:如果存在下拉菜单,则循环读取所有的子菜单信息,然后进入下一步;如果不存在下拉菜单,则直接进入下一步;
(14)判断是否存在下一个元素:如果存在,则返回上面第(4)步“读取工具条元素”,再重复往下循环;如果不存在下一个元素,则进入下一步
(15)读取工具条使用信息情况的信息;最后
(16)读取XML结束。
4、根据权利要求3所述的基于XML实现通用浏览器工具条的方法,其特征是在所说的第(四)步“根据XML节点数据生成工具条按钮数据结构对象”中,在定义浏览器工具条XML的ButtonStyle节点时,采用定义枚举字符串分别表示不同的按钮类型和非按钮控件类型,其中包括:
BUTTON表示普通按钮;
DROPDOWN表示整体下拉按钮;
WHOLEDROPDOWN表示分离下拉按钮;
TEXT_BOX表示文本输入框;
COMBO_BOX表示下拉组合输入框;
PASSWORD_BOX表示密码输入框;
HTML_DYNAMIC表示HTML滚动新闻;
HTML_WEB表示HTML网页内容。
5、根据权利要求3所述的基于XML实现通用浏览器工具条的方法,其特征是所说的文本输入框、下拉组合输入框和密码输入框中用户所输入的数据采用在命令信息中加入相应占位符来表示输入框中的用户输入的数据,其中包括在命令信息的相应位置中分别加入预定义的[$TEXT_BOX_STRING$]、[$COMBO_BOX_STRING$]、[$PASSWORD_BOX_STRING$]等占位符分别表示文本输入框、下拉组合输入框、密码输入框中用户输入的数据。
6、根据权利要求3所述的基于XML实现通用浏览器工具条的方法,其特征是所说的步骤(12)“在工具条上显示不同图片尺寸处理”的步骤包括:从浏览器工具条XML获取每个工具条元素的图片尺寸;将图片尺寸等比较调整以适应工具条的固定高度;根据调整后的宽度计算空格组合,用相应的空格填充到标题前面来调整图片在工具条上的显示效果。处理后的工具条图片信息需要设置到工具条按钮数据结构对象中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610061337 CN1889039A (zh) | 2006-06-26 | 2006-06-26 | 基于xml实现通用浏览器工具条的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610061337 CN1889039A (zh) | 2006-06-26 | 2006-06-26 | 基于xml实现通用浏览器工具条的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1889039A true CN1889039A (zh) | 2007-01-03 |
Family
ID=37578317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610061337 Pending CN1889039A (zh) | 2006-06-26 | 2006-06-26 | 基于xml实现通用浏览器工具条的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1889039A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010145393A1 (zh) * | 2009-06-15 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现动态调整工具条按钮显示的方法和系统 |
CN102118650A (zh) * | 2011-01-25 | 2011-07-06 | 深圳市酷开网络科技有限公司 | 一种电视机菜单显示方法、装置及电视机 |
CN101227552B (zh) * | 2007-12-05 | 2011-09-14 | 深圳创维数字技术股份有限公司 | 一种机顶盒菜单的开发方法 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
CN102520899A (zh) * | 2011-12-07 | 2012-06-27 | 中国航空无线电电子研究所 | 通用座舱显示管理系统及相应的显示控制系统的开发方法 |
CN102629256A (zh) * | 2012-02-29 | 2012-08-08 | 浙江工商大学 | 一种农业信息本体的xml数据信息表示方法 |
CN102982139A (zh) * | 2012-11-20 | 2013-03-20 | 上海中信信息发展股份有限公司 | 通用浏览器 |
CN103020178A (zh) * | 2012-11-28 | 2013-04-03 | 北京奇虎科技有限公司 | 一种浏览器加载图片工具条的方法和装置 |
CN105653513A (zh) * | 2015-12-30 | 2016-06-08 | 北京农信互联科技有限公司 | 一种基于猪场管理的表单录入方法及系统 |
-
2006
- 2006-06-26 CN CN 200610061337 patent/CN1889039A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227552B (zh) * | 2007-12-05 | 2011-09-14 | 深圳创维数字技术股份有限公司 | 一种机顶盒菜单的开发方法 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
WO2010145393A1 (zh) * | 2009-06-15 | 2010-12-23 | 中兴通讯股份有限公司 | 一种实现动态调整工具条按钮显示的方法和系统 |
CN102118650A (zh) * | 2011-01-25 | 2011-07-06 | 深圳市酷开网络科技有限公司 | 一种电视机菜单显示方法、装置及电视机 |
CN102520899A (zh) * | 2011-12-07 | 2012-06-27 | 中国航空无线电电子研究所 | 通用座舱显示管理系统及相应的显示控制系统的开发方法 |
CN102520899B (zh) * | 2011-12-07 | 2014-08-06 | 中国航空无线电电子研究所 | 通用座舱显示管理系统 |
CN102629256A (zh) * | 2012-02-29 | 2012-08-08 | 浙江工商大学 | 一种农业信息本体的xml数据信息表示方法 |
CN102982139A (zh) * | 2012-11-20 | 2013-03-20 | 上海中信信息发展股份有限公司 | 通用浏览器 |
CN103020178A (zh) * | 2012-11-28 | 2013-04-03 | 北京奇虎科技有限公司 | 一种浏览器加载图片工具条的方法和装置 |
CN103020178B (zh) * | 2012-11-28 | 2016-05-04 | 北京奇虎科技有限公司 | 一种浏览器加载图片工具条的方法和装置 |
CN105653513A (zh) * | 2015-12-30 | 2016-06-08 | 北京农信互联科技有限公司 | 一种基于猪场管理的表单录入方法及系统 |
CN105653513B (zh) * | 2015-12-30 | 2019-10-11 | 北京农信互联科技有限公司 | 一种基于猪场管理的表单录入方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1889039A (zh) | 基于xml实现通用浏览器工具条的方法 | |
CN1269059C (zh) | 访问网络中位置的方法 | |
CN1154935C (zh) | 设备控制装置及设备判断方法 | |
CN1271547C (zh) | 图像数据通信系统、服务器系统和控制方法 | |
CN1841376A (zh) | 对网络表单的数据驱动动作 | |
CN1752963A (zh) | 文档信息处理设备、文档信息处理方法及处理程序 | |
CN1501285A (zh) | 排版系统、排版程序和排版方法 | |
CN1648846A (zh) | 文件处理装置和文件处理方法 | |
CN1321923A (zh) | 画面程序作成方法、记录媒体 | |
CN1809812A (zh) | 用于源代码检测源代码中弱点的方法和装置 | |
CN1609793A (zh) | 用于计算机平台的编程接口 | |
CN1744036A (zh) | 报告软件中支持定制图形表示的系统和方法 | |
CN1813252A (zh) | 信息处理方法、信息处理程序、信息处理装置及摇控器 | |
CN1504942A (zh) | 组织计算机网络中电子文件的方法及电子邮件系统 | |
CN1701568A (zh) | 通过无线网络的多模式网络交互 | |
CN1815476A (zh) | 显示装置 | |
CN1447261A (zh) | 特定要素、字符串向量生成及相似性计算的装置、方法 | |
CN1288584C (zh) | 电子词典和服务器 | |
CN1934570A (zh) | 文本挖掘装置和其方法以及程序 | |
CN101075893A (zh) | 网络信息处理设备及方法和信息处理设备及其控制方法 | |
CN1416276A (zh) | 中间数据接收装置、方法、程序和记录媒体以及发送装置、传输方法 | |
CN1107264C (zh) | 信息提供系统 | |
CN1776621A (zh) | 程序变换方法 | |
CN1509017A (zh) | 一种分类自动搜索互联网信息并广播到数字电视的系统 | |
CN1046360C (zh) | 说明用户接口的方法及运行多用户接口型计算机的编程系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |