Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebreath JavaScript错误:不支持:类型函数中没有toString()函数_Javascript_Browser Plugin_Firebreath - Fatal编程技术网

Firebreath JavaScript错误:不支持:类型函数中没有toString()函数

Firebreath JavaScript错误:不支持:类型函数中没有toString()函数,javascript,browser-plugin,firebreath,Javascript,Browser Plugin,Firebreath,我正在使用firebreath框架编写一个浏览器插件。当我将插件与javascript一起使用时,我遇到了一个奇怪的错误: unsupported: no toString() function in type function 当我多次尝试调用Dropbox_pluginAPI类上返回JSAPIPtr的方法时,就会出现这个错误 代码如下: //JavaScript context for(var i=0; i<100; i++) { //After several times of

我正在使用firebreath框架编写一个浏览器插件。当我将插件与javascript一起使用时,我遇到了一个奇怪的错误:

unsupported: no toString() function in type function
当我多次尝试调用Dropbox_pluginAPI类上返回JSAPIPtr的方法时,就会出现这个错误

代码如下:

 //JavaScript context
for(var i=0; i<100; i++)
{
//After several times of calling the method I get the error: unsupported: no toString() function in type function
var md = plugin().getMetaDataOfFileOrFolder("dropbox/demotext","null",true,false,"null"); 
}


//API class

FB::JSAPIPtr Dropbox_pluginAPI::getMetaDataOfFileOrFolder(std::string fileOrFolderPath,std::string hash, bool list, bool include_deleted,
std::string rev)
{
MetaData m = client->getMetaDataOfFileOrFolder(fileOrFolderPath,hash,list,include_deleted,rev);

return boost::make_shared<MetaDataAPI>(m_host,m);

}


//MetaDataAPI class
class MetaDataAPI : public FB::JSAPIAuto
{
public:

/**
* Constructor.
* @param host The browser
* @param m The MetaData object
*/
MetaDataAPI(const FB::BrowserHostPtr& host,MetaData m);

.....
.....

}
一致:

    md = fn("dropbox/demotext","null",true,false,"null"); 
  • 首先尝试更新Firefox;在旧版本的firefox中有一个bug,它有时会交换通过网桥发送的两个NPObject,给您一个不同的对象

  • 将plugin()调用移动到父作用域,这样就不会每次都调用它

  • 将这些内容分成不同的行,这样您就可以准确地看到错误发生的位置

  • 像这样:

    var plug = plugin();
    for(var i=0; i<100; i++)
    {
        var fn = plug.getMetaDataOfFileOrFolder;
        var md = fn("dropbox/demotext","null",true,false,"null"); 
    }
    
    var plug=plugin();
    对于(var i=0;i
    
  • 首先尝试更新Firefox;在旧版本的Firefox中存在一个bug,它有时会交换两个通过网桥发送的NPObject,给您一个不同的对象

  • 将plugin()调用移动到父作用域,这样就不会每次都调用它

  • 将这些内容分成不同的行,这样您就可以准确地看到错误发生的位置

  • 像这样:

    var plug = plugin();
    for(var i=0; i<100; i++)
    {
        var fn = plug.getMetaDataOfFileOrFolder;
        var md = fn("dropbox/demotext","null",true,false,"null"); 
    }
    
    var plug=plugin();
    
    对于(var i=0;我只是为了防止它有助于建立链接,我还发现了一个坏问题:……我认为你通过重新发布一个更清晰的问题是正确的。我真的只是想将它们链接起来,因为上一条评论中包含了一些细节。k我明白了你的意图……谢谢如果它有助于建立链接,我也发现了这个坏问题蒂安:……我认为你提出了一个更明确的问题,这是正确的。我真的只是想把它们联系起来,因为上一篇评论中包含了一些细节。我明白了你的意图……谢谢
    var plug = plugin();
    for(var i=0; i<100; i++)
    {
        var fn = plug.getMetaDataOfFileOrFolder;
        var md = fn("dropbox/demotext","null",true,false,"null"); 
    }