• Thứ Hai, 24/01/2005 08:51 (GMT+7)

    Móc nối Internet Explorer với Google


    Có lẽ hiện nay tại Việt Nam đa số người dùng lướt web với trình duyệt IE (Internet Explorer). Tuy nhiên, không phải ai cũng biết và tận dụng được hết những khả năng của IE. IE không những tiện dụng vì được tích hợp cùng Windows mà thực sự còn rất nhiều điều thú vị khác. Ở đây tôi xin giới thiệu một trong những khả năng tùy biến rất hữu ích của IE: tìm kiếm với Google.

    Là một cư dân của cộng đồng Internet, chắc chắn bạn thường xuyên sử dụng Google để tìm kiếm thông tin. Mỗi lần như vậy bạn phải mở trang Google và nhập vào thông tin muốn tìm. IE cho phép bạn thực hiện việc tìm kiếm đơn giản hơn và nhanh chóng hơn, bạn chỉ cần bôi đen thông tin cần thiết sau đó nhấn chuột, trình duyệt sẽ mở Google và tìm thông tin mà bạn muốn biết.

    Tôi xin nói rõ hơn một chút về cách hoạt động của nó. Ví dụ, khi đang duyệt một trang web nào đó, chợt bạn thấy một từ hay một khái niệm lạ và muốn dùng Google để tìm thông tin về nó. Bây giờ bạn chỉ cần bôi đen từ khóa trên trang web đó, nhấn chuột phải để mở menu (context menu) và nhấn chọn "Tìm với Google", IE sẽ mở một trang khác để tìm kiếm với từ khóa bạn đã chọn. Có nghĩa là chúng ta sẽ thêm mục "Tìm với Google" vào context menu của IE, sau đó sẽ xử lý mục này để nó mở cửa sổ Google và tự động tìm với từ khóa đã chọn.

    Bổ sung context menu

    Context menu là menu xuất hiện khi người dùng nhấn chuột phải vào nội dung của một trang web. Rất tuyệt vời là IE cho phép chúng ta thêm một vài lựa chọn vào menu này.

    Bạn vào Registry (chọn menu Start->Run, gõ vào regedit và nhấn OK), chuyển đến khóa HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt và tạo thêm một khóa ở đây. Tên của khóa chính là tên của menu được thêm vào (nếu bạn không tìm thấy khóa MenuExt thì hãy tạo nó), ví dụ ở đây ta sẽ tạo khóa "Tim voi Google" (nhấn chuột phải vào MenuExt và chọn New->Key, sau đó gõ vào "Tim voi google"). Sửa giá trị (Default) của nó thành bất kì cái gì, miễn là có chữ. Bây giờ bạn hãy mở IE và nhấn chuột phải vào vị trí bất kì trên trang web, bạn sẽ thấy xuất hiện menu vừa tạo. Còn nếu bạn muốn một phím tắt cho menu đó, chỉ cần thêm chữ & vào trước từ mà bạn muốn làm phím tắt, ví dụ: Tim voi &Google.

    Thật là đơn giản phải không, nhưng thực sự đó mới chỉ là một nửa của vấn đề. Khi bạn nhấn vào menu đó sẽ chẳng có gì xảy ra cả. Vấn đề tiếp theo là xử lý menu đó, rất may là IE cung cấp một cách thức xử lý khá đơn giản. Bạn còn nhớ giá trị của (Default)? Lúc trước tôi nói là bạn gõ vào bất cứ thứ gì nhưng kì thực không phải vậy, nhưng nếu bạn không gõ gì thì menu sẽ không xuất hiện, đó chính là lý do. Đúng ra, giá trị đó phải là đường dẫn đến một tập tin chứa mã xử lý, mã này được chứa trong một trang web (htm, html) viết bằng JavaScript hoặc VBScript. Khi nhấn vào menu thì IE sẽ xử lý đoạn mã này ở hậu trường như là một phần của trang web đang xem nên bạn hoàn toàn không hay biết hay bị làm phiền gì cả.

    Ngoài ra, menu này cũng có nhiều tùy chọn, ví dụ như nó chỉ xuất hiện khi bạn nhấn chuột phải vào một liên kết và không hiển thị nếu nhấn chỗ khác. Muốn vậy bạn hãy tạo thêm một Value (kiểu REG_DWORD) và đặt tên là Contexts, gán cho nó một trong những giá trị sau (theo hệ Hex):

    CONTEXT_MENU_DEFAULT = 0x1 (mặc định)

    CONTEXT_MENU_IMAGE = 0x2 (hình ảnh)

    CONTEXT_MENU_CONTROL = 0x4 (không biết)

    CONTEXT_MENU_TABLE = 0x8 (bảng)

    CONTEXT_MENU_TEXTSELECT = 0x10 (bôi đen text)

    CONTEXT_MENU_ANCHOR = 0x20 (liên kết)

    CONTEXT_MENU_UNKNOWN = 0x40 (không xác định)

    Nếu bạn muốn menu chỉ xuất hiện khi đã bôi đen một dòng chữ thì đặt giá trị của Contexts là 10. Còn nếu muốn kết hợp nhiều lựa chọn? Bạn chỉ cần đơn giản dùng phép toán OR để kết hợp các giá trị. Ví dụ, bạn muốn menu xuất hiện khi chuột ở trên hình và liên kết thì đặt giá trị 22 (vì 0X20 OR 0X2 = 0X22). Bây giờ bạn đã hoàn thành việc thiết kế cách ứng xử của menu. Tiếp theo chúng ta sẽ xử lý để được kết quả như ý muốn.

    Chương trình xử lý

    Như ở trên đã nói, chương trình xử lý sẽ nằm trong một file html, vì vậy bạn hãy tạo một file có tên là test.htm và đặt nó ở thư mục C: (bạn cũng có thể đặt ở chỗ khác nhưng phải thay đổi giá trị Default cho thích hợp). Sau đó nhập đoạn code sau vào file test.htm. Bạn hoàn toàn có thể dễ dàng thay đổi nội dung tùy thuộc vào mục đích của bạn. Đoạn code này gồm một form rút gọn của Google, nó sẽ lấy giá trị bạn đã bôi đen, đưa vào TextBox sau đó sẽ chuyển cho Google giống như khi bạn gõ vào ô tìm kiếm của Google vậy. Nếu bạn cần một form chính xác hơn, hãy mở trang chủ Google để xem mã nguồn và làm theo. Ở đây tôi chỉ làm một form đơn giản đủ để thực hiện tìm kiếm. Tôi dùng VBScript vì đây là ngôn ngữ giành cho IE nên mọi việc có vẻ dễ dàng hơn rất nhiều.

    <form name="f" action="http://www.google.com.vn/search">

    <input type=hidden name=hl value=vi>

    <input type=hidden name=ie value="UTF-8">

    <input maxLength=256 size=55 name=q value="">

    </form>

       

    NÂNG CẤP SEND TO BẰNG SEND TO TOYS

     
       

    Như vậy bạn đã dùng các thủ thuật trong bài viết này để "quy phục" menu ngữ cảnh theo ý bạn. Vậy cũng chưa đủ, ắt hẳn bạn cũng muốn đưa thêm vài mục vào các menu đó. Nếu vậy, hãy thử công cụ Send To Toys của Gabrielle Ponti. Công cụ độc đáo này sẽ bổ sung các khoản mục mới khi bạn nhấn chuột phải lên một tập tin và chọn Send to. Ví dụ, bạn có thể chỉ đưa tên và đường dẫn tập tin vào Clipboard để thuận lợi trong việc dán vào e-mail hay một chỗ nào khác. Bạn cũng có thể dán đường dẫn này ở dấu nhắc lệnh hệ thống để cửa sổ Command Prompt tự động chuyển đến gốc thư mục bạn cần đến. Có một lệnh trong menu có chức năng mở hộp thoại cho bạn chọn đích đến của thư mục (nếu đích đến đó không có sẵn trong menu) và một lệnh khác sẽ gửi tập tin vừa được chọn và đường dẫn của nó đến hộp thoại Run. Nếu nhấn phải một thư mục, bạn còn có một số tùy chọn khác để bổ sung vào hoặc loại bỏ ra khỏi menu Send To. Ngoài ra, phầm mềm này có thể hoạt động với tất cả phiên bản của Windows và bạn có thể tải miễn phí từ www.pcworld.com.vn, ID: 44020.

     

    <SCRIPT LANGUAGE="VBScript">

    Set parentwin = external.menuArguments

    Set doc = parentwin.document

    Set sel = doc.selection

    Set rgn = sel.createRange

    f.q.value = rgn.text

    f.submit

    </SCRIPT>

    Bây giờ bạn hãy khởi động lại IE, mọi chuyện đúng như những gì chúng ta mong đợi. Xin chúc mừng bạn. Khả năng này của IE cung cấp vô số cơ hội cho các nhà phát triển phần mềm và dịch vụ web, nhất là các chương trình Download. Ví dụ như bạn cung cấp dịch vụ tra từ điển trực tuyến thì đây là một cách thức tuyệt vời, bạn chỉ cần cung cấp cho người dùng một module nhỏ để thực hiện những việc chúng ta làm nãy giờ. Khi người dùng muốn tra từ, chỉ cần bôi đen và nhấn chuột.

    Thông tin thêm về vấn đề này bạn có thể tìm thấy trên MSDN. Chúc bạn thành công.

    Nicky (Huynh Phuc Hung)
    NickyLavigneVn@yahoo.com
    Tham khảo: MSDN April - 2001

     

    ID: A0501_121