[英]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.