如何利用javascript xpcom组件中的c ++ xpcom组件

时间:2010-02-05 10:05:51

标签: javascript c++ xpcom

我使用c ++开发了一个xpcom组件。我的组件中有GetHWND()方法。我还使用javascript开发了另一个xpcom组件。我想在javascript xpcom组件中使用GetHWND函数。我正在使用以下代码来执行此操作。

  

netscape.security.PrivilegeManager.enablePrivilege( “UniversalBrowserRead”);

     

netscape.security.PrivilegeManager.enablePrivilege( “UniversalXPConnect”);

     

var myComponent = Components.classes ['@ dougt / WebLock']。createInstance(Components.interfaces.IWebLock);

     

myComponent = myComponent.QueryInterface(Components.interfaces.IWebLock);

     

var res = myComponent.GetHWND(mainWindow.content.document);

但它给出了错误,因为“ReferenceError:netscape未定义”。我做谷歌搜索,但没有找到解决方案。

我正在使用Mozilla Firefox,我希望它能够同样使用它。

请帮我解决这个问题。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您不需要这些:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

答案 1 :(得分:0)

我同意Nickolay的观点,当您执行扩展程序代码时,它具有chrome权限,允许您访问XPCOM层和组件。

我希望看到的是,它是否适用于尼古拉提到的线条。 第二项>>如何定义C ++组件的接口。 XPIDL不知道HWND类型,因此您必须提供一些不同的类型,或者您可以使用本机类型但[scriptable]接口不支持