1

我正在用 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: Component returned failure code: 0x80004002 (NS_NOINTERFACE) [nsISupports.QueryInterface]

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

4

1 回答 1

0

显然,图像在不同平台上以不同的方式存储到剪贴板。检查Jetpack 如何读取它们

于 2013-04-06T11:53:29.640 回答