کنترل Web Browser – ساخت
مرورگر صفحات وب
برنامه
Internet
Explorer يا iexplore.exe در
واقع برنامه کوچکي است که وظيفه اصلي آن ايجاد چارچوبي براي بهم پيوستن عناصر
مختلف است و اين عناصر هستند که وظايف اصلي مثل load
کردن صفحات وب ، اجراي کدهاي Html و غيره را
انجام مي دهند . اصلي ترين عنصري که مستقيماً توسط iexplore.exe
استفاده مي شود کنترل Webbrowser (
موجود در فايل shdocrw.dll ) مي باشد . وظيفه اين فايل dll ، عبارت است از حرکت بين صفحات وب ، مديريت تاريخچه صفحات ديده
شده و غيره . اين فايل خود از فايل ديگري بنام Mshtml.dll
استفاده مي کند که وظيفه آن بررسي و اجراي فايلهاي html
است . مايکروسافت به برنامه نويسان اين امکان را داده که بتوانند در برنامه هايشان
از کنترل webbrowser
استفاده کنند . با استفاده از اين کنترل مي توان به سادگي يک مرورگر وب تقريباً
کامل ساخت .
خصوصيات کنترل Webbrowser :
Webbrowser علاوه بر خواص
استانداردي مثل width
، height و
… خواص زير را دارد :
1 – Busy : اگر در حال load کردن يک صفحه
يا در حال جستجو در وب باشد اين خاصيت True است . توسط
متد Stop مي توان عمليات جاري را متوقف کرد .
2 – Container : ارجاع به شي نگهدارنده کنترل webbrowser
3 – Document : ارجاع به صفحه html فعلي . براي
کار با اين صفحه html مي توان از خواص و متدهابي شي Document
استفاده کرد .
4 – LocationName : حاوي آدرس
محلي است که اکنون در کنترل webbrowser ، load
شده است . اگر اين محل يک صفحه html باشد عنوان آن
صفحه خواهد بود و اگر اين محل يک فايل در شبکه باشد مسير کامل آن فايل خواهد بود .
5 – LocationURL : حاوي url محلي است که فعلاً در کنترل webbrowser ، load
شده است .
6 – Offline : اگر کنترل webbrowser در حالت عدم اتصال باشد مقدار آن True و
در غيراينصورت False است .
7 – Parent : فرمي را نشان مي دهد که کنترل webbrowser در آن قرار دارد .
8 – ReadyState : وضعيت کنترل
webbrowser را برمي
گرداند .
متدهاي کنترل webbrowser : اين متدها مربوط به مرور در صفحات وب هستند :
1- GoBack : در ليست
تاريخچه url ها ، يکي به
عقب برمي گردد .
2 – GoForward : در ليست
تاريخچه url ها ، يکي به
جلو مي رود .
3 – GoHome : به homepage مرورگر مي رود .
4 – Navigate : به يک url يا
فايل مي رود . ساختار اين متد بصورت زير است :
Navigate URL [Flags,][TargetFrameName,][PostData,][Headers]x
URL آدرس مقصد مي باشد . Flags
نحوه باز شدن آدرس مقصد را تعيين مي کند . اگر اين
پارامتر ذکر نشود آدرس جديد در پنجره فعلي باز خواهد شد و به ليست تاريخچه اضافه
شده و اگر کپي آن در temperory cache
موجود باشد از آنجا خوانده مي شود . مقادير پارامتر Flags
عبارتند از :
- NavOpenInNewWindow : آدرس جديد
را در پنجره جديدي باز مي کند .
- NavNoHistory : به ليست
تاريخچه اضافه نمي شود بلکه جايگزين صفحه فعلي مي شود .
- NavNoReadFromCache : صفحه جديد
از cache خوانده نمي شود .
- NavNoWriteToCache : صفحه جديد
روي cache نوشته نمي شود
Event هاي کنترل webbrowser : اين event ها
مربوط به مرور در وب و تغيير حالت آن هستند :
1 – CommandStateChange : براي فعال
يا غيرفعال کردن دکمه هاي Forward و Back در
مرورگر استفاده مي شود . شکل کلي فراخواني اين event بصورت زير است :
Private Sub WebBrowser1_CommandStateChange(ByVal Command
As Long, ByVal Enable As Boolean)
که command فرماني است که حالت فعال آن تغيير کرده است و دو مقدار مي گيرد :
1 و 3 که بترتيب معادل فرمانهاي GoForward و GoBack
هستند .
Enable فعال يا غيرفعال بودن فرمان را تعيين مي کند .
2 – DocumentComplete : اين event
زماني فعال مي شود که صفحه در حال load شدن به حالت ReadyState_Complete برود . شکل کلي فراخواني اين event
بصورت زير است :
Private
Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
که pDisp ارجاعي به
کنترل webbrowser
است که event در آن رخ داده است و URL آدرس صفحه در
حال load شدن است .
3 – DownloadBegin : اين event در
آغاز حرکت به صفحه جديد روي مي دهد و هيچ پارامتري نمي گيرد . مرورگر مي تواند در
اين event پيغامي براي شروع عمليات جديد نشان مي دهد .
4 – DownloadComplete : اين event در
پايان عمليات يا در صورت انصراف کاربر يا بروز خطا روي مي دهد .
5 – ProgressChange : با بروز هر
تغييري در وضعيت load ، اين event روي مي دهد . شکل کلي فراخواني
آن بصورت زير است :
Private Sub WebBrowser1_ProgressChange(ByVal Progress As
Long, ByVal ProgressMax As
Long)
که Progress نشان دهنده پيشرفت عمليات ( بايتهاي load
شده ) است . پارامتر ProgressMax
تعداد کل بايتهايي که بايد load شوند را نشان
مي دهد بنابر اين :
(Progress/ProgressMax)*100=درصد پيشرفت عمليات load
يک مثال
ساده :
از منوي project مورد components را انتخاب
کنيد و از ليست کنترلها ، Microsoft Internet Controls را
به toolbar خود اضافه کنيد . يک کنترل WebBrowser روي فرم قرار دهيد و سايز آنرا به اندازه ابعاد فرم خود قرار دهيد
. يک textbox و يک دکمه روي فرم قرار دهيد . کد زير را براي event
مربوط به کليک دکمه بنويسيد :
WebBrowser.Navigate
textbox.text
بازگشت به فهرست
بازگشت به صفحه نخست