Thêm mã lệnh Visual Basic vào trang HTML

Một phần của tài liệu Mạng internet (Trang 48)

Thiết kế và tạo một ứng dụng Internet cũng đòi hỏi cùng một lợng thời gian và sự phân tích nh một ứng dụng Visual Basic chuẩn. Để đề cập một cách đầy đủ về các khái niệm và các tính năng của ứng dụng DHTML đòi hỏi phải trình bày toàn bộ về lập trình Web. Trong mục này, chúng tôi chỉ trình bày một cách ngắn gọn về qúa trình tạo. Khi thêm mã lệnh vào trang DHTML, bạn cần hiểu rằng mã DHTML khác với mã Visual Basic chuẩn về một số phơng diện liên quan tới quá trình của HTML. Điểm đầu tiên cần quan tâm là cách xử lý sự kiện trong trang DHTML. Hầu hết các sự kiện trong HTML động đều tơng tự nh trong Visual Basic, trừ cách đặt tên cho chúng. Tất cả các tên sự kiện trong DHTML đều đợc bắt đầu bởi từ on. Bạn có thể xác định vị trí của hầu hết các sự kiện thông thờng bằng cách tìm chúng theo tiền tố đó. Ví dụ, sự kiện Click trong Visual Basic tơng ứng với sự kiện onClick trong trang DHTML

Để xem điều này đợc thực hiện nh thế nào, bạn sẽ tạo trang Web giống nh trong mục trớc nhng lần này bạn sẽ dùng các tính năng của DHTML. Hãy bắt đầu một project mới, chọn mục DHTML application trong hộp thoại New Project. khi project đã đợc tạo, bạn hãy chú ý rằng có một trang hộp công cụ mới chứa các điều khiển style HTML mà bạn có thể dùng trong ứng dụng.

Để tạo một trang Web giống nh trớc, thêm các điều khiển Textbox và nút lệnh vào trang HTML bằng cách dùng các điều khiển HTML. Cần chú ý rằng khi bạn thêm những điều khiển này vào trang HTML, Visual Basic sẽ tự động thêm các thẻ nguồn HTML vào nguồn trang ở phía trái của vùng làm việc. Ngoài ra, bạn cũng có thể thêm các nhãn vào trang HTML.

Bạn không thể hiển thị bộ soạn mã lệnh cho một điều khiển bằng cách đơn giản nhấn kép chuột vào điều khiển đó. Trong trình bày trang HTML, mọi

điều khiển đều là hoạt động. Để xem cửa sổ soạn mã lệnh, bạn cần nháy chuột phải vào điều khiển, và chọn tuỳ chọn View Source.

Hiển thị thủ tục Onclick cho nút lệnh và thêm mã lệnh sau vào thủ tục: BaseWindow. Alert “Hello” & Me.Text1.Value

Khi chạy ứng dụng,Visual Basic sẽ khởi động trình duyệt Web mặc định ở máy tính của bạn và hiển thị trang khởi đầu cuả ứng dụng. Đánh tên của bạn vào và nhấn chuột vào nút lệnh để chạy dòng lệnh mà bạn vừa thêm vào. Trong trình duyệt Web sẽ hiển thị hộp thông báo chứa thông báo cho ngời sử dụng.

Nh bạn thấy, mã lệnh rất giống với mã VBScript mà bạn đã tạo trong phần trớc. Lúc này, chắc bạn sẽ tự hỏi “ Tại sao mình lại phải dùng DHTML”? Câu trả lời cho câu hỏi này chính là khả năng mà bạn có thể cung cấp cho một ứng dụng trên cơ sở Web có mọi quá trình xử lý đợc thực hiện trên máy tại chỗ.

Ngoài việc tạo một ứng dụng đầy đủ chức năng, bạn còn có thể thêm các lệnh siêu liên kết vào trang HTML của ứng dụng để cho phép ngời sử dụng có khả năng nhảy tới các trang khác trong ứng dụng hoặc trên Internet.

Để cho phép ngời sử dụng nhảy tới trang khác trong ứng dụng, bạn có thể sử dụng đoạn mã mẫu sau:

Private Function Button1_Onclick() As Boolean

BaseWindow.Navigate “Project1.DHTMLPage2.html” End Function

Ví dụ trên sử dụng phơng thức di chuyển (navigate) của đối tợng BaseWindow để di chuyển tới nơi đợc chỉ định. Projec1.DHTMLPage2.html là tên mặc định đợc gán cho trang DHTML thứ hai khi nó đợc thêm project. Bằng cách thay các giá trị đợc truyền cho phơng thức navigate, bạn có thể cho phép ngời sử dụng nhảy tới bất kỳ một Web site nào trên Internet.

Sau khi bạn hoàn thành ứng dụng và dịch nó, Visual Basic sẽ tạo một file DLL chứa trình thiết kế trang và mọi mã lệnh có liên quan mà bạn đã thêm vào. Các trang HTML và các file liên quan tới chúng đợc lu trữ riêng và cần phải đợc phân bố cùng với file DLL. Tuy vậy, để triển khai ứng dụng này một cách đúng đắn, bạn nên dùng bộ Package và Deployment Wizard mới để tạo file DLL và đóng gói nó cùng với tất cả các file có liên quan vào một cabinet tức là file.cab. Wizard sau đó có thể sẽ triển khai cabinet này và các file hỗ trợ của nó tới vị trí mà bạn đã chỉ ra trên Server của Web.

Ngoài ra, file DLL và các file cabinet, wizard còn tạo ra trang HTML khởi phát cho ứng dụng, mà khi đợc truy nhập bởi ngời sử dụng, nó sẽ bắt đầu quá trình tải xuống để đa ứng dụng của bạn tới máy tính ngời sử dụng. Một khi sự tải xuống đã hoàn tất, ứng dụng của bạn sẽ chạy trên máy tính của ngời sử dụng.

Nh vậy, bạn đã biết thêm cách thêm một thứ đang là thời thợng nhất của ngày hôm nay. Với điều khiển Browser, những ngời sử dụng của bạn có thể duyệt Internet mà không cần mở bất kỳ một ứng dụng nào khác. Tơng tự, nếu bạn có một Web site riêng, bạn có thể chỉ cho ngời sử dụng trực tiếp tới đó và cho phép ứng dụng của bạn có thể tự động tải xuống những nâng cấp cho chính nó. Bạn cũng đã thấy một số thứ cần thiết để tạo một trang Web và thêm mã xử lý trong form của VBScript vào trang HTML. Nếu bạn không tạo một ứng dụng Web Internet đầy đủ, thì những khái niệm và điều khiển này sẽ chỉ đợc dùng để bổ sung những cải tiến vào bất kỳ ứng dụng nào mà bạn tạo ra. Cuối cùng, bạn cũng đã có một khái niệm sơ bộ về cách tạo một ứng dụng HTML động trong Visual Basic, một công cụ cho phép bạn thiết kế những ứng dụng rất tinh xảo dựa trên Web.

2.5. Cách xây dựng bộ trình duyệt chuyên dùng

duyệt chuyên dùng của riêng bạn. Ví dụ, bạn có thể muốn không cho phép một số ngời tìm kiếm phía ngoài miền chuyên biệt, hoặc có lẽ bạn không muốn cho các cháu ở nhà tìm kiếm trên trên http://www.playboy.com. Bạn có thể muốn có bộ trình duyệt là ứng dụng MDI thay phiên bản SDI đã thiết lập sẵn trong Internet Explorer. Mục đích của chơng này là trình bày điều bạn cần biết về điều khiển WebBrowser mạnh và mới lạ của Microsoft để bạn có khả năng lập mã lệnh cho trình duyệt chuyên dùng.

2.5.1. Bắt đầu với điều khiển WebBrowser

WebBrowser là một điều khiển riêng do đó bạn cần vào Project Components để bổ sung điều khiển đó vào đồ án của bạn. Đây là khoản mục đ- ợc liệt kê trong Microsoft Internet Controls trong hộp thoại đó. Trong sử dụng đơn giản nhất bạn hãy coi điều khiển WebBrowser là điều khiển hộp chứa chuyên dùng, diễn dịch tự động tài liệu HTML bạn nhận đợc qua Internet hoặc mạng nội bộ thành các trang Web thông dụng đã quen thuộc với hầu hết mọi ngời. Tuy nhiên, nh bạn sẽ sớm thấy, điều khiển WebBrowser có nhiều công dụng hơn là chỉ cho bạn xem các trang Web. Bạn có thể dùng điều khiển này để bổ xung khả năng tải xuống cho một ứng dụng. Điều khiển WebBrowser còn duy trì danh sách quá trình nắm dữ liệu. Điều đó có nghĩa là với vài dòng mã lệnh bạn có hể cho phép ngời dùng duyệt qua tới và lui hầu nh tức thời trên các trang và các địa chỉ họ đăng nhập. (Một ví dụ đễ thấy là Internet Explorer, đơn giản điều khiển này đợc xếp trong giao diện ngời dùng).

Nh bạn có thể dự đoán, toàn bộ điều khiển này đợc thực hiện bằng sự xác lập các tính chất và sử dụng các phơng pháp của WebBrowser, do đó phần kế tiếp chúng ta sẽ trình bày những tính chất quan trọng nhất.

Điều khiển WebBrowser là cần thiết để xem xet hỗ trợ trực tuyến đi kèm với Visual Basic 6.0, do đó chắc chắn bạn sẽ có điều khiển này nếu bạn cài đặt chuẩn.

Phơng pháp quan trọng nhất đối với điều khiển WebBrowser là Navigate. Phơng pháp này lấy một chuỗi URL (Uniform Resource Locator-bộ định vị nguồn tài nguyên đồng nhất) bạn muốn WebBrowser hiển thị. Ví dụ,

Private sub from_load() On error resume next

WebBrowser. Navigate (“www.Micrsoft.com”) End sub

Sẽ đua bạn đến Microsoft Site khi biểu mẫu chứa WebBrowser đã đợc tải trớc. (Chú ý bạn không cần dùng http://ww microsoft.com “ của địa chỉ này- điều khiển WebBrowser đủ mạnh để bổ sung phần này một cách tự động.

Mặc dù nói chung việc sử dụng On error Resume Next trong mã lệnh của bạn không phải lúc nào cũng tốt nhng mã lệnh điều tác điều khiển WebBrowser (tơng tự các điều khiển ngời dùng đã nêu trong chơng trớc) là một ngoai lệ. Điều này là do nhiều phơng pháp của điều khiển WebBrowser có thể trả về một lỗi khi không có lỗi trong mã của bạn. (Ví dụ Site bạn muốn đến có thể bị xoá). Vì lý do đó, hầu hết các nhà lập trình sử dụng On error Resum Next với điều khiển WebBrowser để bẫy các lỗi có thể xảy ra ở bộ trình duyệt.

Bạn cũng có thể xem lớt một ví trí trên đĩa cuc bộ bằng cách cung cấp tên đờng dẫn đầy đủ cho tập tin trong dạng “file://pathname.” Bằng cách gộp hộp văn bản cho URL trong ứng dụng của bạn, bạn có thể cho phép ngời dùng chọn địa điểm để đến. Ví dụ, giả sử bạn có hộp văn bản tên là txtAddress và nút lệnh là cmdGo bạn có thể dùng mã lệnh tơng tự nh sau:

Private sub cmdgo_click() On error Resume Next

WebBrowser.Navigate txtaddress.text End Sub

để lấy vị trí sẽ duyệt qua, sau đó mã lệnh này sẽ qua vị trí đó bằng phơng pháp Navigate. Dới đây là mã lệnh đầy đủ cho phơng pháp Navigate (tất nhiên bạn có thể kiểm tra xem có ai đến địa điểm đó không). (adsbygoogle = window.adsbygoogle || []).push({});

Private Sub cmdCo_Click() On Error Resume Next

If InStr (“playboy.com, txtAddress.text) then

MsgBox “Sorry that is not a site I want you to visit” Elses

WebBerowser. Navigate txtAddress.text End If

End Sub

Ghi chú: Theo mặc định, điều khiển WebBrowser đợc che khuất khi đợc tạo ra lần đầu. VB truy xuất điều khiển này khi bạn xác lập tính chất Visible là True hoặc khi bạn gọi phơng pháp Navigate (hoặc phơng pháp GoSearch-bạn xem phần “Bạn đang ở đâu” trong chơng này).

a. Tip

Bạn có thể dùng tính chất Busy (Trả về True hoặc False) để kiểm tra xem điều khiển WebBrowser đang trong quá trình tìm kiếm địa chỉ mới hay đang tải một tập tin xuống. Nếu quá trình đó quá lâu (hoặc nếu ngời dùng nhấp nút Cancel hoặc Stop) bạn có thể dùng phơng pháp stop để xoá thao tác đó.

Dới đây là cú pháp chung của phơng pháp Navigate:

WebBrowserControlName. NavigateURL[Flags,][TargetFrameName,] [PostData,][Header]

(Bạn cũng có thể dùng biến đối tợng đã xác lập cho minh dụ của điều khiển WebBrowser để rút ngắn lợng gõ phím bạn phải thực hiện).

Còn có phơng pháp Navigate2 không chỉ cho phép bạn đến URL và tập tin đợc nhận biết bằng đờng dẫn đầy đủ mà còn cho phép bạn xem lớt các hồ sơ đặc biệt, chẳng hạn nh Desktop và My Computer.

b. Url

Đây là biểu thức chuỗi có giá trị-“URL” (Uniform source locator) trong

ngôn từ Internet - là địa chỉ của vị trí bạn muốn hiển thị. Đó có thể còn là tên đ- ờng dẫn đầy đủ của tập tin HTML cục bộ bạn muốn hiển thị.

c. Flags

Nh các dấu ngoặc vuông cho biết, đây là tham số tuỳ chọn. Tham số này điều khiển việc bạn muốn duy trì vị trí đợc cất giữ nhanh hay đợc lu trong danh sách quá trình (hoặc cả hai). Điều này còn cho phép bạn cuộn lên cửa sổ Browser mới với vị trí đó đợc hiển thị. Các flags khả dĩ đợc cho trong bảng sau, và bạn bổ sung chúng với nhau để xác lập nhiều flags.

Bảng 2.5: Bảng các Flags chính

Hằng ký hiệu Giá trị ý nghĩa

NavOpenInNewWindow 1 Mở vị trí hoặc tập tin trong cửa sổ mới

NavNoHistory 2 Không bổ sung vị trí cho danh sách đợc điều khiển đó duy trì. (Trang mới thay thế trang hiện hành trong danh sách)

không

NavNoWriteToCache 8 Không viết trang HTML vào bộ nhanh cục bộ

TargetFrameName Tham số tuỳ chọn cho phép bạn hiển thị trang HTML trong khung mới.

d. Post Data

Tham số tuỳ chọn đợc dùng khi bạn làm việc với các biểu mẫu HTML. Đối với những ngời đã thông thạo HTML, nếu bạn bỏ qua tham số này, phơng pháp Navigate sử dụng phơng pháp HTML GET. Tham số đó đợc bỏ qua nếu URL không phải là trang Web.

Headers Tham số tuỳ chọn cho phép bạn gởi thông tin bổ xung cho máy dịch vụ HTML có chứa trang bạn sẽ tải xuống. Bạn có thể dùng điều này nếu máy dịch vụ bạn đang đến cho phép các hoạt động khác đã đợc chuyên biệt với yêu cầu URL.

Nếu bạn viết bộ trình duyệt chuyên dùng, chắc chắn sẽ thuận tiện để có khả năng cung cấp sự hồi tiếp ngời dùng đến vị trí của ngời đó. Bạn có thể dùng các tính chất LocationName hoặc Location URL của điều khiển WebBrowser cho điều này. Sự khác biệt là nếu điều khiển WebBrowser đang hiển thị trang HTML từ World Wide Web, LocationName cung cấp tiêu đề của trang đó và Location URL cung cấp URL. Nếu bạn đang xem trang HTML cục bộ, thì Location Name và Location URL cả hai đều truy xuất tên đờng dẫn đầy đủ của hồ sơ hoặc tập tin.

Ví dụ, bộ trình duyệt chuyên dùng bạn sẽ thấy ở cuối chơng này có chứa mã sau đây để cập nhật nhanh trạng thái hiển thị các đoạn thông tin.

Sau khi thăm viếng Điều khiển WebBrowser, tơng tự Internet Explorer, sử dụng một phần RAM và một phần đĩa cứng của bạn để lu các địa điểm mới đợc thăm viếng. Điều này cho phép bạn (trừ khi bạn xác lập tính chất Flag trong phơng pháp Navigate đã trình bày trong phần trớc) tăng tốc độ thăm viếng lại các vị trí đã thăm viếng trớc đó. Các phơng pháp dùng để đi tới và lui rất dễ nhớ: chung là GoBack và GoForward. (adsbygoogle = window.adsbygoogle || []).push({});

Bạn cũng có thể dùng phơng pháp GoHome để điều khiển WebBrowser trả về địa chỉ của ngời dùng hoặc trang khởi đầu và phơng pháp GoSearch để đến trang Web tìm kiếm của ngời dùng (để điều khiển WebBrowser sử dụng thông tin xác lập trong hộp thoại Internet Explorer Preferences để xác định vị trí của các điểm đó).

Bạn cũng có thể dùng WebBrowser để làm mới một trang không cần dùng phiên bản đợc nhớ nhanh rất hữu dụng cho thông tin thờng xuyên thay đổi. Điều này đợc thực hiện bằng hai phơng pháp là Refresh và Fefresh2 sự khác biệt là Refresh đơn giản tải trang điều khiển WebBrowser đang hiển thị còn Refresh2 cho phép bạn gởi lại thông tin trên trang Web ở mức máy dịch vụ Web sử dụng. Cú pháp Là:

WebControlReference.Refresh2 Level

Trong đó tham số Level có thể là một trong các hằng ký hiệu đợc nêu trong bảng dới đây:

Bảng 2.6: Bảng các hằng của tham số level

Hằng ký hiệu Giá trị ý nghĩa

REFRESH_NORMAL 0 Đây là hằng mặc định REFRESH_HEXPIRED 1 Chỉ làm mới nếu trang đ hếtã

REFRESH_COMP;ETELY 2 Cơ bản báo máy dịch vụ Web để gởi trang này tựa nh đó là lần đầu, (Về mặt kỹ thuật, sẽ gởi

“tựa đề” đặc biệt cho máy dịch vụ là “pragma: nocache”)

2.5.3. Các biến cố WebBrowser

Cũng nh các điều khiển VB, điều khiển WebBrowser chuyển đổi các biến cố khác nhau theo thời gian chuyên biệt. Bạn có thể viết mã lệnh trong các thủ tục biến cố liên hệ để cung cấp sự hồi tiếp ngời dùng cũng nh cho điều đang xảy ra. Ví dụ, ngay trớc khi cho WebBrowser chuyển đến vị trí mới, sẽ chuyển sang biến cố Before Navigate.

a. Biến cố Before Navigate

Private Sub WebBrowserReference_BeforeNavigate(ByVal URL As String, byVal Flag As Long, ByVal TargetFrameName As String PostData As Variant, ByVal Hearders As String Cancel As Boolean). Các tham số đợc nêu trong bảng dới đây:

Bảng 2.7: Các tham số của biến cố Before Navigate

Tham số ý nghĩa

WebBrowser Reference Tên của điều khiển WebBrowser hoặc biến cố đối tợng đợc xác lập theo tên đó

URL Biểu thức chuỗi có giá trị là URL Flags Không đợc dùng hiện hành

TargetFrameName Đợc dùng nếu bạn sẽ hiện thị thông tin trong khung HTML

Một phần của tài liệu Mạng internet (Trang 48)