Firebreath JavaScript错误:不支持:类型函数中没有toString()函数
我正在使用firebreath框架编写一个浏览器插件。当我将插件与javascript一起使用时,我遇到了一个奇怪的错误: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
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");
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");
}