function testCopyImage () { var Ci = SpecialPowers.Ci; var Cc = SpecialPowers.Cc; var clipboard = SpecialPowers.Services.clipboard;
function getClipboardData(mime) { var transferable = Cc['@mozilla.org/widget/transferable;1']
.createInstance(Ci.nsITransferable); var loadingContext = SpecialPowers.wrap(window).docShell
.QueryInterface(Ci.nsILoadContext);
transferable.init(loadingContext);
transferable.addDataFlavor(mime);
clipboard.getData(transferable, 1, SpecialPowers.wrap(window).browsingContext.currentWindowContext); var data = SpecialPowers.createBlankObject();
transferable.getTransferData(mime, data);
return data;
}
function testClipboardValue(mime, expected) { var data = SpecialPowers.wrap(getClipboardData(mime)); var str = data.value == null ? data.value :
data.value.QueryInterface(Ci.nsISupportsString).data;
is(str, expected, "clipboard has correct [" + mime + "] content")
}
//--------- Prepare data and copy it.
// Select the node. var node = document.getElementById('logo');
// Set node and copy image. var docShell = SpecialPowers.wrap(window).docShell; var documentViewer = docShell.docViewer
.QueryInterface(Ci.nsIDocumentViewerEdit);
documentViewer.setCommandNode(node);
documentViewer.copyImage(documentViewer.COPY_IMAGE_ALL);
//--------- Let's check the content of the clipboard now.
// Does the clipboard contain text/plain data ?
ok(clipboard.hasDataMatchingFlavors(["text/plain"], clipboard.kGlobalClipboard), "clipboard contains unicode text");
// Does the clipboard contain text/html data ?
ok(clipboard.hasDataMatchingFlavors(["text/html"], clipboard.kGlobalClipboard), "clipboard contains html text");
// Does the clipboard contain image data ?
ok(clipboard.hasDataMatchingFlavors(["image/png"], clipboard.kGlobalClipboard), "clipboard contains image");
// Is the text/plain data correct ?
testClipboardValue('text/plain', 'about:logo');
// Is the text/html data correct ? var expected = '';
if (navigator.platform.includes("Win")) {
expected = kTextHtmlPrefixClipboardDataWindows + expected + kTextHtmlSuffixClipboardDataWindows;
}
testClipboardValue('text/html', expected);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.