编程语言
首页 > 编程语言> > 将XPCOM组件公开给网页中的javascript

将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