Copy Image to Clipboard from Browser in Javascript

2020-01-28 09:06发布

问题:

Is it possible to copy an image to the clipboard in javascript? I know how to copy text, but can you copy images?

Is it a security limitation?

回答1:

No, you can't copy images to the clipboard. Copying anything to the clipboard is a security limitation of every browser, but you may able to copy text to the clipboard in IE if they have the proper security settings. Here Mozilla lists some of the problems caused by programmatic access to the clipboard.



回答2:

Yes, most of the scripts supports text only.

http://forums.mozillazine.org/viewtopic.php?f=25&t=1195035&start=0

The above site also discussing the same issue.

The following site said related to security issues,

http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard

but this won't work in latest version of Mozilla.



回答3:

The last answer is from 2010 and browsers have changed a lot since then. With this simple function, you can copy whatever you want (text, images, tables, etc) (on your page) to the clipboard. The function receive the element id or the element itself.

function copyElementToClipboard(element) {
  window.getSelection().removeAllRanges();
  let range = document.createRange();
  range.selectNode(typeof element === 'string' ? document.getElementById(elementName) : element);
  window.getSelection().addRange(range);
  document.execCommand('copy');
  window.getSelection().removeAllRanges();

}