IE(微軟)瀏覽器延伸開發初探

來源:互聯網
上載者:User

         最近開發瀏覽器外掛程式有點上癮,先開發了一個FF(Firefox)瀏覽器外掛程式,後來又開發了一個Google瀏覽器的外掛程式,還是不覺得不過癮,這次要嘗試開發一個粗糙的IE瀏覽器外掛程式,最終實現在一鍵實現訂餐,一鍵取消訂餐操作。
         凡事知道就好做了,只是這次走了些彎路。網上只要提到IE外掛程式開發的無不提到Com,BHO等等概念,為此我還下載了vs2010,安裝platform sdk,併到codeproject下載N個例子進行研究,雖然已經好幾年不用vs2010了,也不曾在寫com了,還好有點底子,基本能看懂,瞭解了下BHO的原理,同時瞭解了com的一些東西,也算有些收穫。不過越看越覺得我的不需要這麼麻煩,不需要BHO處理各種訊息狀態。我只需要在IE上增加一個按鈕,點擊這個按鈕,調用我寫的js觸發一個操作,並給出提示即可。走點彎路沒關係,下次也許用的到。

         現在改變策略,既然要增加按鈕,觸發操作。那到internet explorer development上找協助就可以了,還真找到一篇文章,關於如何add menu items。仔細閱讀瞭解到,IE上的按鈕是通過增加註冊表項來完成了,隨即產生了兩個登錄機碼

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\Extensions\{5D78A592-AA1A-4E6F-A808-9214B4A7222A}]"CLSID"="{5D78A592-AA1A-4E6F-A808-9214B4A7222A}""MenuText"="我要訂餐""MenuCustomize"="我要訂餐""MenuStatusBar"="我要訂餐""ClsidExtension"=""[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\Extensions\{BA6C7C63-9EFC-4DA1-B5D9-666A624F4831}]"CLSID"="{5D78A592-AA1A-4E6F-A808-9214B4A7222A}""MenuText"="取消訂餐""MenuCustomize"="取消訂餐""MenuStatusBar"="取消訂餐""ClsidExtension"=""

          匯入登錄機碼,重啟IE,在工具中看到這兩個選項,我要訂飯和取消訂飯。只是點擊這兩個menu item沒有任何響應,原因是我們沒有給這兩個menu item增加增加響應事件。很簡單在登錄機碼中增加一個exec即可,我們要使用之前的js,那就需要寫一個頁面來執行這個js,比如寫如下代碼

<html><head><metahttp-equiv="Content-Type" content="text/html;charset=utf-8"><title>訂餐系統</title><meta name="keywords"content=""><scriptsrc="./dingcan.js"></script></head><bodyonload="DingCan.loginAndDingCan()"><span id="dcdingcan">正在訂餐中...</span></body>

如果我們的exec這樣寫

"Exec"="file:///D:/Program%20Files/dingcan/dingcan.html"

IE會重新開啟一個視窗,使用者體驗不好,這裡我們用點小技巧,把.html修改成.hta尾碼,整個事件清淨了,這樣設定之後,點擊按鈕後,是這個樣子的有點大,

在html增加如下代碼,設定視窗大小,

<scriptlanguage="javascript">window.resizeTo(200,100)</script>

這次是這樣的,完美了

Hta內容補充:HTA 全名為 HTMLApplication ( HTML 全名為 Hyper Text Markup Language ),HTA 為 HTML 應用程式。HTA格式的檔案不需要在瀏覽器中執行,windows可以直接執行此程式。更詳細的內容可以參考HTML Applications:
http://msdn.microsoft.com/en-us/library/ms536471%28v=VS.85%29.aspx

IE外掛程式實現的很猥瑣,只不過他實現了我要的功能。這幾個擴充都是皮毛,沒有什麼高深技術含量,只是希望對大家有所協助,也希望消除做瀏覽器延伸的不自信。

參考資料
Add menu items

http://msdn.microsoft.com/en-us/library/aa753591(v=VS.85).aspx

Internet Explorer Development

http://msdn.microsoft.com/en-us/library/bb188743.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.