文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>简单浏览器的设计

简单浏览器的设计

时间:2007-04-17  来源:gaozhongshan

设计要求:I1.简单浏览器的设计
环境要求:Windows95/98/2000/XP/2000,校园网,程序语言自定
功能要求:要编写能浏览网页的程序。

1.前言
1.1相关背景知识介绍
    网页浏览器是日常中人们上网时所必须的应用软件之一,在多年以前浏览器市场里还存在着网景公司的Netscape与微软公司的Internet  Explorer两大巨头之间的竞争,然而,随着个人电脑的迅速普及以及Windows操作系统占领了绝大部分市场(而Windows中又捆绑着IE浏览器),微软的这一垄断性的行为导致现如今,就只剩下IE了。当然随着用户需求的不断提高,,目前很多公司和个人都开发出了比较不错的浏览器,例如,美观实用的傲游(MYIE)、小巧玲珑的Opera以及腾讯公司开发出来的TT浏览器等,都受到了许多使用者的青睐。
    1.2 文章概要及程序设计思路
    1.2.1 文章内容概述
    本文以Visual Basic 6.0封装的IE核心控件—WebBrowser为中心,阐述以及探讨网页浏览器编程的基本技巧和思路,并实现一个具有多页面显示功能的网页浏览器,并且它能够将弹出式的窗口捕捉在浏览器内。在文章中将以程序代码的各大模块为主要线索,解释并分析部分原代码,而完整的原代码将加在附录里。最后,再将本次毕业设计的成果与现在被广泛运用的浏览器做比较,总结这次设计工作的得失。
    1.2.2浏览器的功能简述
    本文中所实现的网页浏览器将会具有以下六大功能:
    (1)能够进行基本的网络导航,例如前进、后退、刷新、停止等等。
    (2)在浏览器内实现搜索功能。
    (3)查看历史浏览记录。
    (4)进行收藏夹管理。
    (5)各种属性设置,如最小化到收藏夹、主页设置等。
    (6)设置IE浏览器的各项属性。
     (7)进行页面打印,并设置打印属性

2.编译原理
    在计算机的各种编程语言中,作为第四代编程语言的Visual Basic,不仅容易学习和掌握,而且其自身的功能非常强大。在Visual Basic 6.0中,编写网页浏览器,最简单的方法就是直接使用Visual Basic提供的网页控件WebBrowser,在本次设计中也是使用的它,这个ActiveX控件和Windows操作系统所自带的浏览器使用的是同一个内核,即IE内核。
    该控件的属性、方法和事件:
方法    说明    
 GoBack     相当于IE的“后退”按钮,使你在当前历史列表中后退一项     
 GoForward     相当于IE的“前进”按钮,使你在当前历史列表中前进一项     
 GoHome     相当于IE的“主页”按钮,连接用户默认的主页     
 GoSearch     相当于IE的“搜索”按钮,连接用户默认的搜索页面     
 Navigate     连接到指定的URL     
 Refresh     刷新当前页面    
 Refresh2     同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表, 该表定义在ExDisp.h中,可以指定的不同值如下: REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器 REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新 REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO  NOT  USE! 请勿使用 REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器     
 Stop     相当于IE的“停止”按钮,停止当前页面及其内容的载入     

属性    说明    
 Application     如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser 控件的自动化对象     
 Parent     返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口     
 Container     返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同     
 Document     为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则 Document属性提供对DHTML Object Model的访问途径     
 TopLevelContainer     返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true     
 Type     返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返 回Microsoft Word Document     
 Left     返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离     
 Top     返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离     
 Width     返回或设置WebBrowser窗口的宽度,以像素为单位     
 Height     返回或设置WebBrowser窗口的高度,以像素为单位     
 LocationName     返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源 是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称     
 LocationURL     返回WebBrowser当前正在显示的资源的URL     
 Busy     返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true 就可以使用stop方法来撤销正在执行的访问操作     

事件     说明     
BeforeNavigate2     导航发生前激发,刷新时不激发    
CommandStateChange     当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward 菜单项或按钮     
DocumentComplete     当整个文档完成是激发,刷新页面不激发    
DownloadBegin     当某项下载操作已经开始后激发,刷新也可激发此事件    
DownloadComplete     当某项下载操作已经完成后激发,刷新也可激发此事件    
NavigateComplete2     导航完成后激发,刷新时不激发    
NewWindow2     在创建新窗口以前激发    
OnFullScreen     当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输 入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)     
OnMenuBar     改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。 VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏     
OnQuit     无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发     
OnStatusBar     与OnMenuBar调用方法相同,标示状态栏是否可见。     
OnToolBar     调用方法同上,标示工具栏是否可见。    
OnVisible     控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数     
StatusTextChange     如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏    
TitleChange     Title有效或改变时激发    

3程序原代码详解
3.1程序模块介绍
本文中的网页浏览器系统包括以下十个主要的模块文件:
1  网页浏览器.frm  浏览器的主窗体,用于显示网页内容以及菜单和工具栏。
2  Module1.bas,用于声明各种常用的文件处理函数。

3.2.1整体介绍
    包括本文中的程序在内的任何浏览器的开发中,其核心技术都利用了微软公司提供的一个浏览器控件—WebBrowser。在Visual Basic 6.0中该控件不是默认就在工具箱里,需要用户自己将它调出了,先选择Visual Basic 6.0菜单中的“工程”—>“部件”,在弹出的对话框中选择“Microsoft Internet Controls”,然后点击“运用”后“确定”(如下图3—2)。该控件就会以一个小地球的图标出现在工具栏里。这样就可以接着完成后面的编程工作。

    主窗体围绕着WebBrowser控件共有70多个属性,而其中的事件更是达上百个,也是可见它在整个程序中的重要性。
3.2.2 PageSetup事件
   “PageSetup”菜单单击事件的功能是如下图3—4所示的页面设计。
Private Sub mnu_PageSetup_Click ()
    brwWebBrowser (TabStrip1.Tabs (CurTab_Index).Tag).ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT
End Sub

3.2.3 “Find On this Page”事件
“Find On this Page”菜单单击事件,弹出当前所浏览网页内部查找对话框。
Private Sub mnu_EditFind_Click ()
On Error GoTo mnu_EditFind_Click_Error:
    SetFocusOnly = True
    TabStrip1.SetFocus
    brwWebBrowser (TabStrip1.Tabs(CurTab_Index).Tag).SetFocus
    SendKeys "^f"
    Exit Sub
mnu_EditFind_Click_Error:
    ShowErrorMessageBox ("mnu_EditFind_Click")
End Sub

3.2.4 AddToFavorites函数
AddToFavorites函数,将当前浏览的网页添加到收藏夹。
Private Sub mnu_AddToFavorites_Click ()
On Error GoTo mnu_AddToFavorites_Click_Error:
    Call AddToFavorites
    Exit Sub
mnu_AddToFavorites_Click_Error:
    ShowErrorMessageBox ("mnu_AddToFavorites_Click")    
End Sub
3.2.5“Internet Options”事件
    “Internet Options”菜单单击事件代码,用于设置IE的属性。
Private Sub mnu_InterNetOptions_Click ()
    Dim RetVal
    RetVal = Shell ("rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl", vbNormalFocus)
End Sub

3.4浏览器多页面显示和捕捉弹出窗口在浏览器内构想
    支持多页面显示和捕捉弹出窗口在浏览器内。这两个功能是IE浏览器所不具备的,而实现这两个功能的关键是brwWebBrowser_NewWindow2事件和NewTab、SetTabCaption两个函数。在brwWebBrowser_NewWindow2事件中“Call NewTab (Me, URL, -99)”调用了NewTab函数,目的就是首先建立一个TAB。
    可以通过SSTAB这个控件来完成显示多网页的功能的,因此当有一个新的网页需要显示的时候,就需要新建一个TAB,而不是另外弹出一个窗口。而SetTabCaption函数的作用就是来设置TAB标题。
    
    
4.各种浏览器比较
    在浏览器市场中,由于各方面的原因IE一直都占据着龙头老大的地位,所以在比较中就以IE作为蓝本。Opera浏览器可以缩放网页的大小比例、调整网页中的图像、全屏浏览等等。傲游Maxthon游览器中可以链接打开一些系统工具。腾讯TT也可以缩放网页的大小比例。这些都是我值得学习的地方,有点遗憾的是,本人的浏览器中不能查看网页源码,这是今后需要改进的。对于浏览网页安全的设置方面,Opera、傲游和腾讯TT比IE更直观,更便于用户根据自己的实际情况来调整。另外,它们三者都可以更换软件皮肤,使浏览器更加靓丽,而由于设计时间有限,在作品中来不及实现这个功能。
    它们三者都嵌入了相应的搜索链接,例如,傲游里嵌入了百度搜索。这个功能对于在当今这个内容纷杂繁多的网络世界里快速高效的寻找到用户自己想要的资源是非常重要的,是很人性化的设计。这也是值得我学习的。另外,腾讯TT可以根据用户的IP地址判断用户所在的地区,再把该地区两天的天气发送到用户端来,在浏览器底部显示。而且腾讯TT中还添加有多线程的飓风下载器,可以加快用户下载资源的速度。
    Opera、傲游和腾讯TT都是可以支持多页面显示的;但在捕捉弹出窗口功能却略有差异,腾讯TT默认允许弹出窗口,在窗口下过滤此页、过滤类似的网页、过滤全部弹出窗口的选择,这也是因为不是每个弹出的窗口都是广告,有些是网站的重要公告。傲游在这方面做的稍差点,对于弹出的窗口只是像IE那样先阻止再询问的处理方式。而Opera在这方面是把弹出窗口捕捉在浏览器内部,只不过它首先还是阻止窗口,然后显示提示用户操作窗口,如果用户无动作浏览器将默认为阻止了该弹出窗口。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载