0

我正在尝试实现 nsIDOMGlobalPropertyInitializer::Init()。

我有一个现有对象(基于 Google Gears),我正在尝试扩展它以支持 JAVASCRIPT_GLOBAL_PROPERTY_CATEGORY(因为 JAVASCRIPT_DOM_CLASS 似乎不再在 FF17 中工作)。

正在调用我的 nsIDOMGlobalPropertyInitializer::Init() 实现,但是如何将我的 C++ 对象(它实现 nsISupports 并公开适当的 IDL)转换为 JS:Value 以使我的对象在 Java Script 中可用?

如果我返回 NS_ERROR_NOT_IMPLEMENTED 或不实现 nsIDOMGlobalPropertyInitializer 接口,FF(正确地)抱怨对象没有公开任何方法或属性。

4

1 回答 1

0

您不必将对象转换为 JS:Value。如果你实现了像 nsISupports 这样的 XPCOM 接口,它们将在 JavaScript 中可用。从您的描述中不清楚您的对象究竟做了什么,但您可能必须在 IDL 中编写一个自定义接口并在您的对象中实现它。然后你可以通过这个接口在 JS 中操作它。您可能也应该实施nsISecurityCheckedComponentand nsIClassInfo

于 2013-03-30T19:20:58.717 回答