NPAPI学习(Firefox和Chrome扩展开发 )

2011-11-08 14:41:02 by 【6yang】, 1172 visits, 收藏 | 返回

FirefoxChrome

从NPAPI与IE看微软有多恶搞

最近需要写一个浏览器的扩展,该扩展要求能支持的浏览器“越多越好”。这让我对跨浏览器的浏览器插件开发了解了一番。果不其然,有个历史悠久的标准已经考虑到了这件事情,那就是NPAPI(Netscape Plugin API).

在 NPAPI的介绍页上可以看到NPAPI几乎支持所有主流浏览器,连相对很嫩的Google Chrome都支持NPAPI。奇怪的是唯独浏览器中目前的绝对老大IE不支持。其实IE本来是支持NPAPI的,因为古时候Netscape的影响力还 是比IE大的。到了IE5.5 SP2的时候,IE就像一个青春期的男孩子,突然志得意满,飞扬跋扈,于是就突然把这块无数人使用的feature给搞掉了!

微软当时自称去掉NPAPI主要是由于“Security reason", 微软由于担心浏览器太过于安全,所以停止支持相对安全的NPAPI,改用导致木马肆虐的ActiveX。 当然对于码农们来说,这都无所谓。

Working on an NPAPI-browser plugin http://www.codeproject.com/KB/cross-platform/NPAPIBrowserPlugin.aspx

_________________________________________________________________

让ActiveX在FireFox和Chrome等NPAPI插件接口的浏览器(不安全)
从这个网址上下载ffactivex-setup-r37.exe后安装
http://code.google.com/p/ff-activex-host/downloads/list
这样firefox浏览器就可以正常浏览有ActiveX插件的网页,比如flash 的ActiveX控件:
<object
id="Control"
TYPE="application/x-itst-activex"
WIDTH="300" HEIGHT="300"
clsid="{D27CDB6E-AE6D-11cf-96B8-444553540000}"
progid="ShockwaveFlash.ShockwaveFlash"
event_OnReadyStateChange="OnReady"
param_src="http://www.youtube.com/v/53RdNYwImYc">
< /object>
在Chrome中,需要按如下方式安装,找到ffactivex的安装目录,新建一个“manifest.json”文本文件,拷贝下列内容后保存:
{
"name": "ActiveX hosting plugin for Firefox",
"version": "1.37.0.0",
"description": "ActiveX hosting plugin for Firefox r37",
"plugins":[{"path": "npffax.dll", "public": true}]
}
在Chrome中点选 扳手 -> 工具 -> 扩展程序
在界面上 点选 载入正在开发的扩展程序
将目录定位到 ffactivex安装目录,确定后即可浏览浏览包含ActiveX插件的网页。

【转发】NPAPI学习(Firefox和Chrome扩展开发 )的更多相关文章

  1. FireFox 浏览器插件/扩展开发学习

    2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"

  2. Chrome扩展开发(Gmail附件管理助手)系列之〇——概述

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  3. Chrome扩展开发之一——Chrome扩展的文件结构

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  4. Chrome扩展开发基础教程(附HelloWorld)

    1 概述 Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档. 2 环境 Chrome 88.0.4324.96 Chromium 87.0.4280.141 B ...

  5. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  6. Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  7. Chrome扩展开发之四——核心功能的实现思路

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  8. 手把手教你Chrome扩展开发:本地存储篇

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  9. 基于 webpack 的 chrome 扩展开发探索

    起 最近利用闲暇时间在进行一款 chrome 扩展 V2EX-HELPER 的开发(如果巧遇 V 友欢迎试用),今天把它彻底改成了用 webpack 打包依赖的模式,不由得感概 webpack 的强大 ...

随机推荐

  1. Spring、mybaits整合

    mybatis.cfg.xml <!DOCTYPE configuration PUBLIC "-//mybatis.org/DTD Config 3.0//EN" &quo ...

  2. Scalaz(31)- Free :自由数据结构-算式和算法的关注分离

    我们可以通过自由数据结构(Free Structure)实现对程序的算式和算法分离关注(separation of concern).算式(Abstract Syntax Tree, AST)即运算表 ...

  3. Java 经典实例:自定义迭代器

    编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用"foreach"循环遍历你的对象. import java.util.Itera ...

  4. Java新集合示意图

    Java的新集合实际上只有3个集合组件:①Map ②List ③Set 在Java 1.2后应该尽量避免使用Hashtable,Vector 和Stack: 假如在一个列表中部进行大量的插入和删除操作 ...

  5. git和svn

    git 分布式管理工具 svn 集中式管理工具 1. Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交.合并,也可以不用联网在本地提交 ...

  6. 深入理解javascript(一)

    此段文章摘自大叔的博客: 此文的目的是书写可维护的javascript代码. 最小的全局变量: JavaScript通过函数管理作用域.在函数内部声明的变量只在这个函数内部,函数外面不可用.另一方面, ...

  7. react native 的js 文件从哪里获取

    /** * Loading JavaScript code - uncomment the one you want. * * OPTION 1 * Load from development ser ...

  8. 一个巧妙的实现悬浮的tableViewHeader的方法

    之前因为工作需要要实现一个类似的 悬浮+视差的headerView的效果, 研究了好久没研究出来怎么做,最后用UICollectionView + CSStickyHeaderFlowLayout的方 ...

  9. Android执行程序或脚本的方法

    Java中提供了两种方法来执行程序或脚本: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 ProcessBuilder.start() 和 ...

  10. Android Studio教程--给Android Studio安装Genymotion插件

    打开Android Studio,依次[File]-[Settings] 在打开的settings界面里找到plugins设置项,点击右侧的“Browser..”按钮 在搜索栏里输入genymotio ...