2013-04-05 46 views
1

我正在用JS构建一个xpcom组件。 我有在JS剪贴板数据,当数据类型是图像/ PNG,我想它的base64字符串,我的代码是:如何获取剪贴板数据的base64字符串?

 ...... 
     trans.addDataFlavor('image/png'); 
     clipboard.getData(trans, Services.clipboard.kGlobalClipboard); 
     trans.getTransferData('image/png', str, strLength); 
     let mw = Services.wm.getMostRecentWindow("navigator:browser"); 

     data.data = str.value.QueryInterface(Ci.nsISupportsCString).data; 
     data.data = mw.btoa(data.data); 
     ... 

我可以在Linux下得到的base64字符串,但是当我在Windows中运行我的代码,我得到一个错误: NS_NOINTERFACE:组件返回失败代码:0x80004002(NS_NOINTERFACE)[nsISupports.QueryInterface]

data.data = str.value.QueryInterface(Ci.nsISupportsCString)。数据; 我不知道如何在我的xpcom组件中获取图像数据的base64字符串,谁可以给我一个答案?

回答

0

显然,图像以不同的平台存储到剪贴板。检查how Jetpack reads them

+0

噢,非常好!谢谢! – 2013-04-08 07:52:22