非IE內核瀏覽器支持activex插件


之前在一個B/S項目中遇到一個需求,就是客戶需要在頁面上對報表的布局以及顯示內容,進行自定義。最后決定使用activex技術來實現。眾所周知,activex是微軟搞得,因此只有ie內核的瀏覽器才能支持。像firefox(火狐)、Chrome、Apple Safari等非ie內核瀏覽器都不支持activex控件,這樣就大大加大了系統使用的局限性。

因此考慮是不是可以讓非ie內核瀏覽器也能支持activex控件,目前火狐等瀏覽器也有類似於activex控件的技術,那就是插件。所以最終決定以插件來作為連接activex的紐帶,使非ie內核瀏覽器也可以支持activex控件。

確定了開發內容后,接下來就是上網了解相關方面的知識和技術。了解了NPAPI技術

NPAPI全稱為:Netscape Plugin Application Programming Interface (NPAPI).

NPAPI 是一個很經典的插件方案,用dll進行注入,用協定的API進行通信,用字符串描述插件能力。瀏覽器會根據能力描述,動態加載插件,並負責插件調用的流程和生命周期管理。而插件中,負責真實邏輯的處理,並可以構造UI與用戶交流。以此類方式實現的插件系統。

在firefox提供SDK的下載(https://developer.mozilla.org/en-US/docs/Gecko_SDK

插件整體的實現思路就是通過插件調用OCX控件,也就是插件本身是銜接瀏覽器與OCX的一條橋梁,這樣做就可以簡單的實現非ie內核瀏覽器對OCX控件的支持。

經過一個多禮拜的開發,插件功能已經基本實現。並且為了方便使用已經打包成exe安裝包。在項目中可以直接讓用戶下載安裝。

安裝效果圖:

 

安裝完成后,可以打開火狐瀏覽器在地址欄輸入about:plugins,查看插件是否正確安裝,
如下圖所示,已經安裝成功
下面測試一下插件效果,首先找一個可用的activex控件(本人用自己寫的插件測試)html頁面代碼
 
Html代碼   收藏代碼
  1. <HTML>    
  2. <H1> 測試頁面 </H1><p>    
  3. 測試頁面    
  4. <HR><center><P>    
  5. <br>    
  6.     <object    
  7.         id="Webplugin"    //ocxid    
  8.         TYPE="application/xhanhan-activex"      
  9.         BORDER="0"    
  10.         WIDTH="300"    
  11.         HEIGHT="300"    
  12.         clsid="{A2DC9F0E-1A2D-4C6D-BB2E-053BABE17134}"> //ocx插件id    
  13.     </object>    
  14.     
  15. </HTML>    
 
以上代碼保存為html文件然后用火狐打開,效果如下圖
 
 
可以看到activx控件已經可以在火狐下運行。目前插件已經在xp,vista、win7、win7(64)、windows server2003、
windows server2008等操作系統,以及火狐、Google Chrome、Opera、Apple Safari、遨游極速模式、360急速模
式下通過測試。支持市面上大部分主流瀏覽器。
 
參考源碼:http://code.google.com/p/ff-activex-host/source/checkout


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM