サンプルコード
※2019/12のサンプルコードになります。
ボタン押下などで動作するようにはしています。
サンプルコード内にコメントを記載したので、注釈的な記述はとりあえず省略。
clipboardCopy.js
/**
* @string text:コピーするテキスト
*
**/
function clipboardCopy(text) {
// コピーするテキストが空の時は放置民
if(text != ""){
// 閲覧中のブラウザの情報を取得
var userAgent = window.navigator.userAgent.toLowerCase();
// ブラウザで処理を分岐
if(
userAgent.indexOf('msie') != -1// IE10以下
|| userAgent.indexOf('trident') != -1// IE11
) {
// クリップボードにコピー
window.clipboardData.setData("text",text);
} else if(
userAgent.indexOf('edge') != -1// Edge
|| userAgent.indexOf('chrome') != -1// Chrome
|| userAgent.indexOf('safari') != -1// Safari
|| userAgent.indexOf('firefox') != -1 //FireFox
|| userAgent.indexOf('opera') != -1// Opera
) {
var listener = function(e){
e.clipboardData.setData("text/plain" , text);
// 本来のイベントをキャンセル
e.preventDefault();
// 終わったら一応削除
document.removeEventListener("copy", listener);
}
// コピーのイベントが発生したときに、クリップボードに書き込むようにしておく
document.addEventListener("copy" , listener);
// コピー
document.execCommand("copy");
}
}else{
// 空の時はalertでもやっとく?
}
};
注釈(後日)
最後
もう少し調査したかったけど、一端糸冬了。
IE11のせいで調査に時間かかりすぎる。