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

Javascript 如何获取剪贴板数据的base64字符串?,javascript,xpcom,Javascript,Xpcom,我正在用JS构建一个xpcom组件。 我已经得到了JS中的剪贴板数据,当数据类型为image/png时,我想得到它的base64字符串,我的代码是: ...... trans.addDataFlavor('image/png'); clipboard.getData(trans, Services.clipboard.kGlobalClipboard); trans.getTransferData('image/png', str,

我正在用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.QueryInterfaceCi.nsistupscstring.data;
我不知道如何在我的xpcom组件中获取图像数据的base64字符串,谁能给我一个答案?

显然,不同平台的图像存储到剪贴板的方式不同。检查