我使用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,我希望它能够同样使用它。
请帮我解决这个问题。 提前谢谢。
答案 0 :(得分:1)
您不需要这些:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
答案 1 :(得分:0)
我同意Nickolay的观点,当您执行扩展程序代码时,它具有chrome权限,允许您访问XPCOM层和组件。
我希望看到的是,它是否适用于尼古拉提到的线条。 第二项>>如何定义C ++组件的接口。 XPIDL不知道HWND类型,因此您必须提供一些不同的类型,或者您可以使用本机类型但[scriptable]接口不支持