轉http://blog.csdn.net/zssureqh/article/details/9452719
很好的介紹NPAPI的原理的參考資料,現將CSDN博友的文章轉到自己博客下,供以後參考學習使用。
原文出處:http://blog.csdn.net/wwwsq/article/details/8254911
NPAPI是電腦上大部分非ie瀏覽器都支持的一種瀏覽器擴展,類似ie的activex技術。
如果你有一個模塊需要支持所有瀏覽器,那麼支持activex和npapi之後,基本上就全支持了。
npapi是寫plugin的,而不是寫extension的。它可以用於實現flash插件,但是不能用來實現adblock。
npapi的plugin對象是由具體頁面來控制生命週期的,類似flash一樣,必須頁面裏面顯式的調用纔會生效。
下圖是npapi的生命週期圖,有助於瞭解plugin是什麼(不同於extension)
官方英文資料:https://developer.mozilla.org/en-US/docs/Plugins
官方詳細資料:https://developer.mozilla.org/en-US/docs/Gecko_Plugin_API_Reference/Plug-in_Basics
這是一篇很好的中文介紹:http://www.eifr.com/article.php?id=1273
這是另一篇不錯的介紹:http://www.cppblog.com/epubcn/archive/2008/11/12/66719.html
更進一步,npapi的內存管理:http://colonelpanic.net/2009/12/memory-management-in-npapi/