原文地址:https://blog.csdn.net/johnson2008t/article/details/46126605html
以前在一個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>
<H1> 測試頁面 </H1><p>
測試頁面
<HR><center><P>
<br>
<object
id="Webplugin" //ocxid
TYPE="application/xhanhan-activex"
BORDER="0"
WIDTH="300"
HEIGHT="300"
clsid="{A2DC9F0E-1A2D-4C6D-BB2E-053BABE17134}"> //ocx插件id
</object>
</HTML>
將以上代碼保存爲html文件而後用火狐打開,效果以下圖
能夠看到activx控件已經能夠在火狐下運行。目前插件已經在xp,vista、win七、win7(64)、windows server200三、
windows server2008等操做系統,以及火狐、Google Chrome、Opera、Apple Safari、遨遊極速模式、360急速模
式下經過測試。支持市面上大部分主流瀏覽器。
目前安裝包已經上傳至下載頻道
地址:http://download.csdn.net/detail/xhanhan/4544576windows