文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程Asp.NetInternet Explorer 编程简述(八)实现浏览历史菜单
精品推荐
特别推荐
·技巧实例:ASP.NET生成静态页面实现方法
·ASP.NET、JSP及PHP之间的抉择
·.net基础知识错误注意二十二点知识
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·.NET基础知识-什么是.NET
·初学C#+ASP.NET+Oracle时积累的备忘点滴
·专家详解:复杂表达式的执行步骤
·asp.net中的加密方法
·DataGrid常见关注问题解决方案
·学习笔记 ASP.NET 5种页面转向法
热点TOP10
·DataList嵌套实例
·C#中势将窗体拖拽进行到底
·Paint.NET 3.20正式版下载
·ASP.NET2.0的multiview和wizard控件
·.net基础知识错误注意二十二点知识
·.NET 3.x新特性之自动属性及集合初始化
·ASP.NET中Multi-ListBox控件编程详解
·技巧实例:ASP.NET生成静态页面实现方法
·绝对精华:ASP.NET常用的三十三种实用代码
·动态创建内容时所用的W3C DOM属性和方法

Internet Explorer 编程简述(八)实现浏览历史菜单

日期:2008年5月27日 作者: 查看:[大字体 中字体 小字体]


关键字:ITravelLogStg, IEnumTravelLogEntry, ITravelLogEntry

1、概述

Internet Explorer的浏览历史菜单在4.0版本开始出现,但直到5.5之前,微软都未公布用于访问浏览历史的COM接口,如今已是IE6.0大行其道的年代,用于访问浏览历史的接口也早已公布多时,本文的目的则是试图抛砖引玉,简单介绍用于访问浏览历史的Travel Log接口,并用一个小小的类CIETravelLog来实现对Travel Log的封装。

2、IOmHistory接口

在早些时候的MSDN中,我们能够查阅到关于浏览历史的接口仅有IOmHistory,而该接口实际上对应的是浏览器中可以通过脚本访问的“history”对象。对于“history”对象,MSDN中是这样说的:

For security reasons, the history object does not expose the actual URLs in the browser history. It does allow navigation through the browser history by exposing the back, forward, and go methods. A particular document in the browser history can be identified as an index relative to the current page. For example, specifying -1 as a parameter for the go method is the equivalent of clicking the Back button.

This object is available in script as of Microsoft Internet Explorer 3.0.

即为了安全的原因,IOmHistory接口仅提供了有限的几个方法来完成在浏览器中前进、后退等操作,并没有提供访问历史列表Url的能力。这也难怪,该接口在IE 3.0时代已经存在,而当时IE并不成熟,可编程能力也不甚强大。一直到IE 4.0通过与Windows 98捆绑销售一统天下之后,相关的文档才逐渐丰富,多窗口浏览器等基于Internet Explorer/WebBrowser Control的应用软件也才铺天盖地开来。但在IE 5.5接口公布之前,要完全模拟IE的Travel Log行为,并不是一件容易的事。最容易想到的方法就是在BeforeNavigate、DocumentComplete等事件发生之时记录/修改Url并加以保存(我在早些时候也这样做过),但是效果不甚理想,尤其是浏览包含Frame的网页时,处理更是麻烦。当然,要完全模拟亦非难事,只不过开发人员都知道微软公布接口是早晚的事,所以也没有人花大力气在模拟IE的Travel Log行为上。

3、Travel Log简介

Internet Explorer 5.5推出以后,Travel Log接口也就开始出现在MSDN中,它是专门为OLE嵌入WebBrowser Control的应用程序设计的,其目的是“提高和加强用户的访问日志体验”(improve and enhance the user's travel log experience)。事实上,稍后我会提到,Travel Log接口正日益成为应用程序中的重要接口之一。

微软公布的Travel Log共包含三个接口:ITravelLogStg, IEnumTravelLogEntry和ITravelLogEntry。

ITravelLogStg——该接口提供了用于在Travel Log中添加、删除、枚举日志(浏览历史)的方法,本文需要用到的几个方法列举如下:
方法名     用途

EnumEntries 为访问日志项创建枚举器(IEnumTravelLogEntry接口指针)

GetRelativeEntry 返回一个日志项

TravelTo 访问一个日志项

IEnumTravelLogEntry——该接口提供用于枚举日志项所必需的方法,本文只用到一个方法:
方法名     用途

Next   枚举下一个日志项(返回ITravelLogEntry接口指针)

ITravelLogEntry——该接口只有两个方法,分别用于返回日志项的Title和Url:
方法名     用途

GetTitle 返回日志项的Title

GetURL 返回日志项的Url

接口准备好了,我们也就很容易得知它们之间的关系:

要得到相对于当前页面的日志项列表,首先应通过ITravelLogStg接口创建一个枚举器(IEnumTravelLogEntry接口)。
通过IEnumTravelLogEntry枚举器的Next方法枚举出一个个的日志项(ITravelLogEntry接口)。
由ITravelLogEntry接口获取日志项所代表的网页的Title和Url并加以处理。
访问相对于当前页面的某个日志项时,首先由ITravelLogStg的GetRelativeEntry方法根据与当前页的距离得到ITravelLogEntry接口,再将后者传入ITravelLogStg的TravelTo方法以达到访问日志项的目的(如前进和后退)。

也许不是太恰当,我对UML也不熟悉,借用一个伪UML序列图表示其关系如下:

4、封装Travel Log

接下来,我们就用一个简单的类来完成对Travel Log的封装。如下所示,tlogstg.h包含了Travel Log的相关接口声明,该头文件可以在Platform SDK中找到。

#include "tlogstg.h"

[1] [2] [3] 下一页 




上一篇:使用 ADO.NET 访问 Oracle 9i 存储过程

下一篇:XMLHTTP异步获取返回值的代码超时测试(AJAX)

相关文章:
·如何实现局域网打印机共享
·网球王子 攻略心得简述(PS2)
·水晶报表的jsp实现
·用Excel实现定时提醒
·用Flash制作简易的图片浏览器
·进程和线程编程
·C语言编程易犯毛病集合
·利用VB6.0实现五线谱作曲工具
·右键菜单中的打开方式无法选择程序怎么办
·开始菜单不能用右键
相关软件:
·C函数浏览
·洪恩轻松教你学电脑_internet学习
·C++编程思想
·速达浏览器V3.9 绿色版
·百家讲坛——历史上的和珅
·中东问题的历史根源
·JPG超强浏览压缩工具 V2.1
·TCP-IP详解卷2:实现
·Showyou网络浏览器Build E
·asp编程技术与综合实例演练(PDG)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot