如何获取剪贴板数据的base64字符串?

时间:2013-04-05 05:44:37

标签: javascript xpcom

我正在用JS构建一个xpcom组件。 我在JS中有剪贴板数据,当数据类型为image / png时,我想得到它的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).data; 我不知道如何在我的xpcom组件中获取图像数据的base64字符串,谁可以给我一个答案?

1 个答案:

答案 0 :(得分:0)

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