2013-04-05 2 views
1

Я создаю компонент xpcom с JS. я получил данные из буфера обмена в 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); 
     ... 

я могу получить строку base64 под Linux, но когда я запустить свой код в окнах, я получил ошибку: NS_NOINTERFACE: Компонент возвращается код ошибки: 0x80004002 (NS_NOINTERFACE) [nsISupports.QueryInterface]

data.data = str.value.QueryInterface (Ci.nsISupportsCString) .data; Я не знаю, как получить строку base64 данных изображения в моем компоненте xpcom, кто может дать мне ответ?

ответ

0

Видимо, изображения хранятся в буфер обмена по-разному на разных платформах. Проверьте how Jetpack reads them.

+0

О, это очень хорошо! Спасибо! –

Смежные вопросы