昨天白天用官方示例在主机安装了FF插件,然而晚上回寝室用VS2013并没有成功,不禁想起了那句话“程序员都是好男人,他们每天都会反省自己,我又错在哪了”。

言归正传,今天的目标是阅读理解FF插件官方文档,我这菜鸡一般的英语水平勉强能应付。

一、Initialization
当一个插件加载了,在创建第一个实例之前就会调用NPError NP_Initialize(void) {};分配内存资源给所有实例使用。
对应的NP_Shutdown函数是在最后一个实例销毁糊调用,用来释放NP_Initialize分配的内存资源

/* Define global variable to hold the user agent string. */
static char* userAgent = NULL;/* Initialize function. */
NPError NP_Initialize(void)
{/* Get the user agent from the browser. */char* result = NPN_UserAgent();if (result == NULL) return NPERR_OUT_OF_MEMORY_ERROR;/* Allocate some memory so that you can keep a copy of it. */userAgent = (char*) NPN_MemAlloc(strlen(result) + 1);if (userAgent == NULL) return NPERR_OUT_OF_MEMORY_ERROR;/* Copy the string to your memory. */strcpy(userAgent, result);
return NPERR_NO_ERROR;
}/* Shutdown function */
NPError NP_Shutdown(void)
{/* Delete the memory you allocated. */if (userAgent != NULL)NPN_MemFree(userAgent);
return NPERR_NO_ERROR;
}

userAgent 是什么,“用户代理”?算了暂时不管了,反正它是个全局静态指针变量。指的是NPN_UserAgent()得到的资源。

二、MIMEType
在初始化的时候,浏览器会去数MIMEType类型的已被注册的插件。接着看看怎么注册插件吧。
“A MIME type is made up of a major type (such as application or image) and a minor type, for example, image/jpeg.If you define a new MIME type for a plug-in, you must register it with IETF (Internet Engineering Task Force). Until your new MIME type is registered, preface its name with “x-“, for example, image/x-nwim.”
IETF看不懂。我的FF浏览器application已经存在,所以我昨天修改的MIMEType没有加“x-”。

紧接着往后看我就炸了!
When a Gecko-based browser starts up, it checks certain directories for plug-ins, in this order:

Windows
1、Directory pointed to by MOZ_PLUGIN_PATH environment variable.
2、%APPDATA%\Mozilla\plugins, where %APPDATA% denotes per-user Application Data directory.
3、Plug-ins within toolkit bundles.
4、Profile directory\plugins, where Profile directory is a user profile directory.
5、Directories pointed to by HKEY_CURRENT_USER\Software\MozillaPlugins*\Path registry value, where * can be replaced by any name.
6、Directories pointed to by HKEY_LOCAL_MACHINE\Software\MozillaPlugins*\Path registry value, where * can be replaced by any name.

奇怪啊,最开始我在
HKEY_LOCAL_MACHINE\Software\MozillaPlugins\添加@mozilla.com.cn/test可是浏览器并没有检测到我的插件啊,反而在HKEY_CURRENT_USER\Software\MozillaPlugins\添加时才有效果。现在再试一次,还是如此!
算了不较真了,除了最后一条,其他的在我电脑上都好用。

Mac OS X
1、~/Library/Internet Plug-Ins.
2、/Library/Internet Plug-Ins.
3、/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources.
4、Plug-ins within toolkit bundles.
5、Profile directory/plugins, where Profile directory is a user profile directory.

Linux
1、 Directory pointed to by MOZ_PLUGIN_PATH environment variable. For example:

#!/bin/bash
export MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins
exec /usr/lib64/firefox/firefoxWhich /usr/lib64/mozilla/plugins this is path for folder with plugins,  /usr/lib64/firefox/firefox  this is path for firefox (binary file). 

2、 ~/.mozilla/plugins.
3、 /usr/lib/mozilla/plugins (on 64-bit systems, /usr/lib64/mozilla/plugins is used instead).

阅读理解FireFox浏览器插件开发文档(一)相关推荐

  1. 开源语义理解框架 Clause API 文档:快速实现聊天机器人

    在上一篇文章<基于开源语义理解框架 Clause 实现聊天机器人 > 中,很多读者关心如何使用 Clause,在 Clause Wiki 文档中心 中也有很多指导使用的资料,现将 API ...

  2. 怎样使用PDF阅读器浏览查看PDF文档

    在电脑上查看PDF文件或者其他格式电子书的时候都会通过相应的软件来打开查看,虽然通过浏览器或者word这类软件应用也能查看PDF,但是只能浏览文件内容,不能查看文档目录以及进行一些简单操作. 使用工具 ...

  3. 判断IE浏览器的文档模式以及浏览器模式

    IE浏览器的浏览器模式和文档模式 判断浏览器模式: function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAge ...

  4. 福昕阅读器怎么拆分PDF文档?

    在工作和学习中不可避免需要将自己需要的PDF文档进行拆分或合并操作,网上搜索了很多方法,大部分都是使用PDF编辑器来实现,但是,其实还有一个免费好用的方法,就是用福昕阅读器领鲜版可以实现拆分PDF文档 ...

  5. 可编辑的PDF阅读器,轻松实现文档的查阅和编辑

    大家平时在阅读PDF文件时,是不是也会遇到文件打不开,或是电脑系统无法找到合适的应用进行文件阅读的情况呢?其实,我们在生活中常常会遇到PDF文档,需要对它进行查阅.编辑等,但大多数小伙伴的电脑并没有专 ...

  6. ie浏览器设置文档模式

    本文来自:http://blog.csdn.net/itmyhome1990/article/details/50331057 项目在IE浏览器中打开默认是Quirks模式,导致兼容性不太好 当然可以 ...

  7. HTML阅读位置,script在HTML文档中位置

    从大红书中学习到的 HTML文档解释方式: 按照HTML文档中顺序依次从上到下解释 解释过程中遇到就会异步的下载css然后继续向下解释 遇到就会异步的下载图片,然后继续向下解释 遇到 我们该如何缓解同 ...

  8. 阅读器java_纯Java文档阅读器

    XDocViewer是一个纯Java的文档阅读器组件,可以方便的集成到Java应用中(也可以集成到Web应用中),它有如下特点: 1.免费 2.支持的文档格式丰富:MS Office文档(doc.do ...

  9. PDF阅读器帮你解决文档字体显示难看的问题

    有时候,我们会在制作文档的时候使用一些美观大气的字体,但是发送给其他人时,他们的电脑由于没有安装这些字体,显示的是默认的宋体. 瞬间Low爆了有没有?怎么处理?保存为PDF文件就不会有这个问题了.在编 ...

最新文章

  1. 在openstack上创建第一个虚拟机
  2. MyCAT-1.4-RC性能测试(初步施工)
  3. bootstrap下拉选择框选中事件_CAD制图初学入门之CAD软件中布局功能详解
  4. 老王学jsp之dom解析xml
  5. sonar 报错日志分析(根据日志跟踪源码执行)
  6. 输出质数(java)
  7. Cocos2dx 之 ButtonSprite
  8. linux目录名乱码,Linux下文件名乱码解决
  9. spring 中事物的使用
  10. 将后台的图像数据传回前台并显示出来
  11. 道一HTTP测试工具功能升级
  12. 微信转账php开发心得
  13. AWK用法示例 awk命令
  14. Cron 定时任务 时间设置
  15. win10系统桌面计算机图标怎么删除,win10 移除快捷方式的图标怎么操作_win10怎样删除桌面上的快捷方式图标...
  16. 2021-05-08 小华子第一篇
  17. 切图案例实操课程二-姜威-专题视频课程
  18. [MachineLearning] 机器学习速成笔记 - Bilibili
  19. Android 合并清单文件 Merge multiple manifest files
  20. 微信小程序从本地开发环境到线上测试环境和生产环境的配置

热门文章

  1. 巧用Wireshark有效管理内网
  2. 【华为机试真题详解】获得完美走位【2022 Q4 | 100分】
  3. 如何抓取canvas画布中的图片
  4. 无感电阻的作用、选型及运营
  5. 怎么把CAD图和航测套合起来用?他们坐标兼容吗?2分钟解决、
  6. 棋盘覆盖问题详解(递归)
  7. Google weather API 天气使用方式
  8. S3三阶对称群的矩阵表示
  9. vim 系列文章 - 001 vim及neovim编译安装(文末有福利)
  10. 新东方的Kubernetes实践:从服务化ES到Kafka和Redis