将XPCOM组件公开给网页中的javascript
作者:互联网
我想编写一个XPCOM组件,它在网页中作为javascript对象公开.像Google Gears这样的东西就是我所追求的.也就是说,在安装Google Gears Firefox扩展程序后,任何想要使用它的网页都可以使用javascript对象“google.gears”.我发现了很多关于XPCOM开发的mozilla文档,但没有任何关于将组件暴露给网页中运行的javascript的信息.这可能与XPCOM一起使用吗?我是否需要编写Firefox插件而不是扩展名?
解决方法:
我正在使用Firefox 4中的新API – nsiDOMGlobalPropertyInitializer完成这项工作 – 它允许您创建一个JS对象,以便懒惰地附加到所有窗口.这是创建Firefox 4中新Web控制台的方式.
您必须在组件中具有以下QI属性:
QueryInterface: XPCOMUtils.generateQI([Ci.nsIDOMGlobalPropertyInitializer]),
以下是扩展中完整实现的示例:
https://github.com/daviddahl/domcrypt/blob/master/extension/domcrypt/components/domcrypt.js
所以基本上,QI到Ci.nsIDOMGlobalPropertyInitializer,然后确保你的清单有一行如下:
category JavaScript-global-property crypt @droplettr.com/domcrypt;1
见:https://github.com/daviddahl/domcrypt/blob/master/extension/domcrypt/components/domcrypt.manifest
标签:xpcom,javascript,firefox 来源: https://codeday.me/bug/20190723/1516797.html