繁体   English   中英

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

[英]How to make use of c++ xpcom component from javascript xpcom component

我已经使用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,但我希望它也能正常工作。

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

您不需要这些:

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

我同意Nickolay的观点,当您执行扩展代码时,它具有chrome特权,该特权使您可以访问XPCOM层和组件。

我想看看它是否可以与Nikolay提到的方法一起使用。 第二项>>如何定义C ++组件的接口。 XPIDL不知道HWND类型,因此您必须提供一些其他类型,或者可以使用本机类型,但[可脚本化]接口不支持该类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM