設計要求: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控件加載的對象的類型。例如:如果加載檔案,就會返 回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屬性改變時