我第一次尝试开发Firefox扩展程序,涉及编程方面的内容。到目前为止,进展还算顺利,但我遇到了一个问题;我需要覆盖内置的nsIPromptService,并用自己的替代它。
我按照这里的基本XPCOM组件创建教程进行了操作,并成功运行了hello world示例。
我按照这里的基本XPCOM组件创建教程进行了操作,并成功运行了hello world示例。
https://developer.mozilla.org/en/creating_xpcom_components
一切看起来都很正常,但是我在查找或研究中没有发现如何从javascript中覆盖接口的方法。我看过C++和Java中似乎能够覆盖内置组件的内容,但我找不到任何关于如何从javascript中实现这一点的信息,仅仅尝试改变合同ID也没有奏效;当我尝试从合同ID获取服务(如下),它只会返回原始的、内置组件版本。
var myComponent = Components.classes['@mozilla.org/embedcomp/prompt-service;1']
.getService(Components.interfaces.nsIPromptService);
我是否忽略了一些非常明显的事情?这样覆盖组件的方法是否不正确(我似乎无法在任何地方找到相关信息,所以我不确定我应该做什么...)。