我試圖構建Firefox的擴展。此擴展使用XPCOM組件(C++ dll)。我正在編譯這個DLL,編譯是可以的。從JavaScript無法訪問XPCOM對象方法
我也成功地建立了一個JS代碼instanciates從XPCOM對象:
try {
greenfox;
return true;
} catch(e) {
alert(e);
return false;
}
返回的對象是這一個:
QueryInterface
QueryInterface()
__proto__
[xpconnect wrapped native prototype] { QueryInterface=QueryInterface()}
QueryInterface
QueryInterface()
一切都很好,但我不能打電話這個函數應該在我的XPCOM組件中。
這裏是我的IDL文件:
[scriptable, uuid(ec8030f7-c20a-464f-9b0e-13a3a9e97384)]
interface nsISample : nsISupports
{
attribute string value;
void writeValue(in string aPrefix);
void poke(in string aValue);
void start();
double stop();
};
當callingstart()函數,我得到的JavaScript錯誤: 「是不是一個函數」
greenfox.start();
你有什麼想法?似乎沒有功能暴露在我的XPCOM中。
如果你真的在這裏寫了你如何實例化你的XPCOM組件,它會有所幫助。 – 2012-01-31 06:41:56