2017-09-21 20:09:36 +00:00
|
|
|
/* exported wcSetClipboard, wcClearClipboard */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Simple text copy functions using native browser clipboard capabilities.
|
|
|
|
* @since 3.2.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the user's clipboard contents.
|
|
|
|
*
|
|
|
|
* @param string data: Text to copy to clipboard.
|
|
|
|
* @param object $el: jQuery element to trigger copy events on. (Default: document)
|
|
|
|
*/
|
|
|
|
function wcSetClipboard( data, $el ) {
|
|
|
|
if ( 'undefined' === typeof $el ) {
|
|
|
|
$el = jQuery( document );
|
|
|
|
}
|
2017-09-21 20:24:34 +00:00
|
|
|
var $temp_input = jQuery( '<textarea style="opacity:0">' );
|
2017-09-21 20:09:36 +00:00
|
|
|
jQuery( 'body' ).append( $temp_input );
|
2021-02-04 17:18:15 +00:00
|
|
|
$temp_input.val( data ).trigger( 'select' );
|
2017-09-21 20:09:36 +00:00
|
|
|
|
|
|
|
$el.trigger( 'beforecopy' );
|
|
|
|
try {
|
|
|
|
document.execCommand( 'copy' );
|
|
|
|
$el.trigger( 'aftercopy' );
|
|
|
|
} catch ( err ) {
|
|
|
|
$el.trigger( 'aftercopyfailure' );
|
|
|
|
}
|
|
|
|
|
|
|
|
$temp_input.remove();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clear the user's clipboard.
|
|
|
|
*/
|
|
|
|
function wcClearClipboard() {
|
|
|
|
wcSetClipboard( '' );
|
|
|
|
}
|