Xử lý Menu

Một phần của tài liệu Quan điểm lập trình (Trang 33 - 34)

I. QUÁ TRÌNH THIẾT KẾ HỆ THỐNG SỐ.

2. Xử lý Menu

Bạn đã có thể thêm menu của bạn vào Menu của IE nhưng đó chỉ mới nửa vấn đề, vấn đề còn lại là làm sao để biết người dùng đã chọn Link nào và làm sao để gọi chương trình của bạn. Muốn giải quyết được vấn đề này bạn cần biết một chút về VBScript. Chúng ta sẽ sử dụng đối tượng (Object) external, một cô nàng dễ thương mà IE đã dành cho các lập trình viên. Nếu muốn tìm hiểu chi tiết về Object này bạn có thể tìm thấy nó trong MSDN.

Bạn sửa nộ ở trên thành: <script language=”VBScript”>

Sub AddLink(Url,Info) Dim oShell

Set oShell = CreateObject(“WScript.Shell”)

oShell.run “C:\test.exe “ + Url

Set oShell = Nothing end sub

Sub OnContextMenu()

set srcEvent = external.menuArguments.event set EventElement = external.menuArguments.

document.elementFromPoint ( srcEvent.clientX, rcEvent.clientY )

if srcEvent.type = “MenuExtAnchor” then set srcAnchor = EventElement

do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement Loop Call AddLink(srcAnchor.href,srcAnchor. innerText)

elseif srcEvent.type=”MenuExtImage” then if TypeName(EventElement)=”HTMLAreaEleme

nt” then

Call AddLink(EventElement.href,EventElement.

Alt)

else

set srcImage = EventElement

set srcAnchor = srcImage.parentElement

do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement if TypeName(srcAnchor)=”Nothing” then call AddLink(srcImage.href,srcImage.Alt) exit sub end if Loop Call AddLink(srcAnchor.href,srcImage.Alt) end if

elseif srcEvent.type=”MenuExtUnknown” then set srcAnchor = EventElement

do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement if TypeName(srcAnchor)=”Nothing” then Call AddLink(EventElement.href,EventElement. innerText) exit sub end if Loop Call AddLink(srcAnchor.href,srcAnchor. innerText) elseif 1=1 then

MsgBox(“Unknown Event Source “”” + srcEvent. type + “””” + vbCrLf)

end if end sub

call OnContextMenu()

</script>

Cả đoạn Code trên chỉ làm mỗi một việc là trả về URL của đối tượng bạn đã chọn. Bạn không cần phải bực bội nếu không hiểu hết nó. Vào một ngày đẹp trời nào đó bạn đang tắm và bỗng thốt lên “à ra thế”, ngoài đường đông người lắm, đừng có như thế mà chạy ra đường há. Bạn chỉ cần chú ý đến hàm AddLink() ở đầ ôi xin ghi lại để các bạn dễ nhìn.

Sub AddLink(Url,Info) Dim oShell

Set oShell = CreateObject(“WScript.Shell”) oShell.run “C:\test.exe “ + Url

Set oShell = Nothing End sub

Hàm này sẽ gọ ới tham số là đường dẫn của link (tham số URL) người dùng vừa chọn. Bạn cũng thắc mắc là còn cái tham số Info thì để làm cái gì. Cái đó sẽ cho bạn biết thông tin về cái Link. Bạn cứ hiểu như vậy còn cụ thể thì bạn sẽ tự khám phá ra khi ngồi “vọc” nó. Bạn chỉ cần thay đường dẫn đến chương trình của bạn là xong. Công việc còn lại cuối cùng là chương trình của bạn. Bạn phải viết một đoạn mã để lấy kết quả mà bạn đã dày

Một phần của tài liệu Quan điểm lập trình (Trang 33 - 34)