Clipboard API is the next-generation clipboard operation technique, which is extra highly effective and cheap than the normal Doc.execCommand()
technique. All its operations are asynchronous and return Promise objects with out inflicting web page jams. Furthermore, it could actually put arbitrary content material (reminiscent of footage) into the clipboard. The navigator.clipboard
property returns the Clipboard object, and all operations are carried out by means of this object.
const clipboardObj = navigator.clipboard;
If the navigator.clipboard
property returns undefined
, it signifies that the present browser doesn’t assist this API (you may see the complete compatibly desk on Can I take advantage of…). Since customers might put delicate information (reminiscent of passwords) on the clipboard, permitting scripts to learn them arbitrarily will trigger safety dangers, so this API has extra safety restrictions. Initially, the Chrome browser stipulates that solely HTTPS protocol pages can use this API. Nonetheless, the event atmosphere (localhost
) permits the usage of non-encrypted protocols. Secondly, the person’s permission must be clearly obtained when calling. The precise implementation of permissions makes use of the Permissions API. There are two permissions associated to the clipboard: clipboard-write
(write permission) and clipboard-read
(learn permission). The “write permission” is mechanically granted to the script, and the “learn permission” have to be explicitly granted by the person. In different phrases, the script may be mechanically accomplished when writing to the clipboard, however when studying the clipboard, the browser will pop up a dialog field asking whether or not the person agrees to learn.
As well as, it needs to be famous that what the script reads is all the time the clipboard of the present web page. One drawback that this brings is that if you happen to paste the related code into the developer instrument and run it instantly, an error could also be reported as a result of the present web page right now is the window of the developer instrument, not an online web page.
For those who paste the above code into the developer instrument and run it, an error will likely be reported. As a result of when the code is operating, the developer instrument window is the present web page, and there’s no DOM interface that the Clipboard API is determined by this web page. One resolution is to place the related code in setTimeout() to delay operating, and rapidly click on on the web page window of the browser earlier than calling the perform to show it into the present web page.
After the above code is pasted into the developer instrument to run, rapidly click on on the web page window of the webpage to make it the present web page, in order that no error will likely be reported.
Clipboard object
clipboard.readText()
The clipboard.readText()
technique is used to repeat the textual content information within the clipboard.
Within the above instance, after the person clicks on the web page, the textual content within the clipboard will likely be output. Word that the browser will pop up a dialog field right now, asking the person whether or not to agree with the script to learn the clipboard.
If the person disagrees, the script will report an error. Right now, you need to use the strive...catch
construction to deal with errors.
clipboard.learn()
The clipboard.learn()
technique is used to repeat the information within the clipboard, which may be textual content information or binary information (reminiscent of footage). This technique requires express permission from the person. This technique returns a Promise object. As soon as the state of the article turns into resolved, an array may be obtained, and every array member is an occasion of a ClipboardItem object.
The ClipboardItem object represents a single clip merchandise and every clip merchandise has a clipboardItem.varieties
property and a clipboardItem.getType()
technique. The clipboardItem.varieties
property returns an array whose members are the MIME varieties accessible for the clip merchandise. For instance, a clip merchandise may be pasted in HTML format or in plain textual content format. Then it has two MIME varieties (textual content/html
and textual content/plain
). The clipboardItem.getType(sort)
technique is used to learn the information of the clip merchandise and returns a Promise object. This technique accepts the MIME sort of the clip merchandise as a parameter and returns the information of that sort. This parameter is required, in any other case, an error will likely be reported.
clipboard.writeText()
The clipboard.writeText()
technique is used to write down textual content content material to the clipboard.
The above instance is that after the person clicks on the internet web page, the script writes textual content information to the clipboard. This technique doesn’t require person permission, however it’s best to place it in strive...catch
to forestall errors.
clipboard.write()
The clipboard.write()
technique is used to write down arbitrary information to the clipboard, which may be textual content information or binary information. This technique accepts a ClipboardItem occasion as a parameter, which represents the information written to the clipboard.
Within the above instance, the script writes an image to the clipboard. Word that the Chrome browser at the moment (till this author writes this text) solely helps writing pictures in PNG format. clipboardItem()
is a constructor natively supplied by the browser to generate an occasion of clipboardItem
. It accepts an object as a parameter. The important thing identify of the article is the MIME sort of the information, and the important thing worth is the information itself. The next instance is to write down the worth of the identical clip merchandise in a number of codecs to the clipboard, one is textual content information, and the opposite is binary information for pasting on totally different events.