كيف يمكنني نسخ بيانات الصورة إلى الحافظة في XUL التطبيق ؟
-
09-06-2019 - |
سؤال
لدي XULRunner التطبيق الذي يحتاج إلى نسخ بيانات الصورة إلى الحافظة.لقد عرفت كيفية التعامل مع نسخ النص إلى الحافظة, و يمكنني لصق PNG البيانات من الحافظة.ما لا أستطيع فهمه هو كيفية الحصول على البيانات من قاعدة البيانات URL إلى الحافظة بحيث يمكن لصقها في التطبيقات الأخرى.
هذا هو رمز يمكنني استخدام نسخ النص (حسنا ، XUL):
var transferObject=Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
var stringWrapper=Components.classes["@mozilla.org/supports-string;1"].
createInstance(Components.interfaces.nsISupportsString);
var systemClipboard=Components.classes["@mozilla.org/widget/clipboard;1"].
createInstance(Components.interfaces.nsIClipboard);
var objToSerialize=aDOMNode;
transferObject.addDataFlavor("text/xul");
var xmls=new XMLSerializer();
var serializedObj=xmls.serializeToString(objToSerialize);
stringWrapper.data=serializedObj;
transferObject.setTransferData("text/xul",stringWrapper,serializedObj.length*2);
و كما قلت, البيانات أحاول نقل PNG البيانات URL.لذا أنا أبحث عن يعادل أعلاه من شأنها أن تسمح ، على سبيل المثالPaint.NET إلى لصق بلدي بيانات التطبيق.
المحلول
هنا الحل أن انتهى بي الأمر باستخدام هذا يحل المشكلة بشكل جيد.المتغير dataURL
هو صورة كنت أحاول الوصول إلى الحافظة في المقام الأول.
var newImg=document.createElement('img');
newImg.src=dataURL;
document.popupNode=newImg;
var command='cmd_copyImageContents'
var controller=document.commandDispatcher.getControllerForCommand(command);
if(controller && controller.isCommandEnabled(command)){
controller.doCommand(command);
}
نسخ الصورة إلى الحافظة باعتبارها 'image/jpg'.
نصائح أخرى
نيل ديكين له المادة على التلاعب الحافظة في xulrunner.أنا لست متأكدا مما إذا كان يجيب عن سؤالك تحديدا, لكنه بالتأكيد تستحق التدقيق بها.