![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mozilla 技术
hanyuxinting
每天勤奋一点点
展开
-
nsIIdleService 的实现与应用
在 Mozilla 中有一个服务可以实现对系统消息的侦听,就是 nsIIdleService 接口。该接口主要实现的功能是:设置一个时间段,当你在这个时间段内没有对计算机进行操作(键盘触发和鼠标操作)时,它会侦听到一个 idle 的消息,而你可以对这个消息做处理,做你想要实现的效果。其实,就是在 QQ 中实现的“离开”的自动设置的功能。分原创 2010-02-23 09:19:00 · 549 阅读 · 0 评论 -
Mozilla NPAPI(Part 4)
<br /> <br />本文主题: FF plugins 封装 IE Activex 控件。<br /> <br />主要有两点:<br /> <br />1. 在 c++ 中调用 COM 接口。<br />2. 数据类型间的转换。<br /> <br />具体解析:<br /> <br />1. 如何在 c++ 中调用 COM 接口:<br /> <br />@1 初始化 COM 库;<br />HRESULT hr = ::CoInitialize(NULL);<br />@2 创建 COM 组件实例原创 2010-12-23 19:06:00 · 2932 阅读 · 2 评论 -
Mozilla NPAPI ( Part 2 )
<br />继续深入敌后。。<br /> <br />上次全还都是皮毛,木有进入操练中。我一直很想知道 JS 和 NPAPI 他们俩怎么搅合的。<br /> <br />作自我批评,不要说文档少,一页纸就够你用,只是从来不用心去读。<br /> <br />对了,NPP 这个代表的是 NP Plugin;NPN 就是 NP Netscape 了。简单说明下。<br /> <br />7. 理解 Plugin API —— 方法和数据结构体(DS)。貌似 API 都这样。。方法即上边提到的两类:NPP 和 N原创 2010-10-29 11:07:00 · 3219 阅读 · 3 评论 -
Mozilla NPAPI ( Part 1 )
<br />这几天在看这部分内容,终于有些眉目了。大概整理下。<br /> <br />1. 实现类似 IE 下 ActiveX 插件的东西,开始以为可以继续又玩 XPCOM 了,但后来发现 Extention 和要实现的东西不是一码事,NPAPI 出现。<br /> <br />2. 那 Extention 能否实现我想要的功能?能否通过 JS 和 Web Server 端进行交互?之前用 Extention 做的都是客户端的,一时转不过弯。据了解,plugins 是为了增强浏览器 browser 自原创 2010-10-28 17:29:00 · 6040 阅读 · 6 评论 -
Mozilla NPAPI ( Part 3 )
经过一个月的奋战,Firefox 插件算是出炉了。。现在反过来去想想那些经历的过程,连自己最开始写的文档都看不大清楚。重新来吧。从实战中总结。1. 为什么选择 plugins。原因有二。一、支持 plugins 实现的 NPAPI 被其他浏览器所支持,如 chrome, opera,safari , mozilla 这些都支持该接口。(To see:Scripting_plugins)另外,也被多种系统支持,Linux,Mac,都ok。二、他们说在 Firefox 下实现类似 IE 下 ActiveX 插件原创 2010-12-10 17:58:00 · 5084 阅读 · 4 评论 -
Mozilla 里的一些侦听消息
今天和同事讨论到这个问题,查到了一些消息 topic。记录下。 Observer_Notifications It provides an overview of observers and a list of built-in notifications fired by Mozilla. 主要是 Mozilla 提供的一些系统的消息 topic。 这原创 2010-05-21 16:35:00 · 422 阅读 · 0 评论 -
关于树操作的一些事项
把一棵树整来整去总觉得很没意思。但是里边的东西却真的耐人寻味。 最近需要对鼠标 hover 事件进行处理,才确知一点,getcelltext 这样的方法只有在刷新树的时候才触发。而hover事件时需要显示数据,且数据需要显示在不同的列中,而列中不同的行显示还不一样。 这种情况,只能在getcelltext时返回数据。 目前采用的方式只能再次刷新树来触发。延伸:通过CSS样式原创 2010-05-17 18:58:00 · 394 阅读 · 0 评论 -
判断文件是否存在
有几类方法: 1. 对本地文件:直接调用 nsIFile 中的方法,exists()。2. 对网络文件(包括chrome文件):可利用其文件内容。 对于方法一: //判断文件是否存在 chrome file 绝对路径均可 isFileExists2: function(aPath) { try { var t原创 2010-05-17 18:30:00 · 1850 阅读 · 0 评论 -
获取扩展的版本号信息
其实把扩展两个字打出来的时候,就基本确定要用什么组件了,但是我之前却没有意识到这一点,因为我是在应用内部调用,并没有站在外部的框架环境中来看。 这个接口很简单:nsIExtensionManager var ceIMAbout = { getVersion : function () { var IMVersion = document.getE原创 2010-05-17 11:22:00 · 581 阅读 · 0 评论 -
关于配置的一些
其实很久都没有认真的总结一下关于配置的使用。有时候在想,mozilla到底是如何运作的,时而懂时而不懂,说到底还是不清楚。借此,总结一下。 今天拿到的关于 tree 的 demo 后,发现 defaults 文件夹下多了一个 js 文件。一个不该那样命名的 js 文件出现在这里,困惑,但发现 prefs.js 中并没有启动客户端的任何程序。而所有的配置信息放在了另一个 js 文件夹原创 2010-04-29 10:17:00 · 1275 阅读 · 2 评论 -
Mozilla下拖拽的一些问题
在修改拖拽图片时的一些bug,之前需求没有提出来,现在按新功能来实现。 拖拽文件部分以前实现过了,详细文档可见茶几同学的这篇文章——Drag 和 Drop在JS中的使用。不过有一点,需要指出的是,如果要在editor中实现文件的拖拽,需要设置 editor 的 editortype 值为 text 。该值为 html 时不可用。 如果使用 textbox 的话,就不会存在该问题原创 2010-04-08 16:03:00 · 487 阅读 · 0 评论 -
实现XPCOM的一些问题
今天同事问到一个问题,在JS实现XPCOM后,组件不能被加载,报错说JS中出现了非法字符。 后来同事说到是因为调用了框架的一个组件库,但这个组件库在最新的项目中没有加载,删掉加载组件库的方法后就ok了。 很不明白,为什么会报非法字符。给人一种误以为编码错误的感觉。 另外,确定一点,JS实现XPCOM的文件对编码格式没有限制。我们现在用的是ANSI编码,同事用的UTF-8,都原创 2010-04-07 16:36:00 · 538 阅读 · 0 评论 -
有关 editor 的拖拽行为
上周在弄拖拽图片的问题,拖拽browser中显示的表情和截屏到editor中,发现一个问题是,当edtior本身声明要支持拖拽时,应该是会覆盖之前的方法,就是把editor本身自己实现的拖拽行为覆盖。导致无法同时支持文件拖拽和图片拖拽的实现。 我们采用的方法是,可以给editor的window实现侦听事件,当在拖拽过程中,判断拖拽数据类型,然后再做处理。 这样可以拖拽表情和截屏了,原创 2010-04-19 13:55:00 · 773 阅读 · 0 评论 -
getElementsByTagName 方法来刷新显示所有图片
在实现拖拽的过程中,需要处理的是,截屏图片显示在本地的名字是一致的。而我们在 browser 中处理时,为了显示截屏收到的图片(而非像文件传输那样进行保存设置。),给 IMG 标签定义的 id 和接收到的图片名一致,而显示的时候,又根据该 id 获取 IMG 标签并对该标签 SRC 进行更新。所以当从 browser 中拖拽通过截屏接收或者发送的图片时,就会出现同样的 id 的 IMG 标原创 2010-04-19 14:00:00 · 990 阅读 · 0 评论 -
JS编写xpcom的实现
<br />很久之前的文档,拿过来分享。不过现在 Gecko2.0 了,所以有些细节可能有变动,目前还没有对 Gecko2.0 进行研究。待续。<br /><br />目的:领会JS实现XPCOM的思想。<br /> <br />JS实现的xpcom需要和xpt放在一个文件夹下,即components文件夹下。<br />(同理,c++实现的xpcom 即 dll文件 需要和xpt放在同一个文件夹下,也是components文件夹下)。<br /><br /><br />文档网址:原创 2011-04-07 15:58:00 · 1287 阅读 · 0 评论