1

JS を使用して xpcom コンポーネントを構築しています。データ型がimage/pngの場合、JSでクリップボードデータを取得しました。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 文字列を取得する方法がわかりません。だれが答えてくれますか?

4

1 に答える 1

0

どうやら、画像はプラットフォームごとに異なる方法でクリップボードに保存されます。Jetpack がそれらをどのように読み取るかを確認してください。

于 2013-04-06T11:53:29.640 に答える