Scriptable Plugin,Javascript返回undefined

时间:2011-12-28 15:16:20

标签: plugins npapi scriptable

我正在尝试编写一个scritable插件,我正在使用下面的mozilla示例作为我的向导,以及查看firebreath以查看它如何包装代码。我对javascript的返回值感到困惑。

Mozilla scriptable example

当javascript调用我的函数时,Allocate,HasProperty,HasMethod,Invoke都被调用。我在Invoke中返回结果,javascript变量是 undefined ,或在修改结果时崩溃浏览器。

    STRINGZ_TO_NPVARIANT(_strdup("Hello World"), *result);

1 个答案:

答案 0 :(得分:1)

STRINGZ_TO_NPVARIANT实际上有点危险;当您将字符串放入NPVariant对象时,您将该内存的所有权授予浏览器。但是,如果您没有使用NPN_MemAlloc分配该内存,则在尝试释放该内存时可能会爆炸(可能是崩溃的来源)。

看看STRINGZ_TO_NPVARIANT实际上在做什么,不要使用它,直到你了解它是如何工作的;在此之前,您可以尝试手动执行这些步骤,以便您更好地理解。使用NPN_MemAlloc分配内存,然后将字符串strcpy到它。我打赌这可以解决你的问题;在你弄清楚它之后,你可以构建自己的内联函数,或者再次清理代码。