jsは、DOMノードイベントを追加することにより、テキストをクリップボードdocument.execCommmandにコピーする(「copy」).
19263 ワード
本関数の原理は、
第一版関数:
以下の関数は、
document.execCommand("copy")
を呼び出す方法でコピーを実行する関数は、JavaScript原生コードのみを使用し、関数を呼び出してjsまたはjqを利用することができるというものです.document.execCommand("copy")
は、ブラウザの互換性が違いますので、詳細はここで参照してください.第一版関数:
text
文字列内のテキストをクリップボードにコピーし、失敗したらerrFn
関数を実行します.function copyText(text, errFn){
var textarea = document.createElement("textarea");
var currentFocus = document.activeElement;
document.body.appendChild(textarea);
textarea.value = text;
textarea.focus();
if (textarea.setSelectionRange){textarea.setSelectionRange(0, textarea.value.length);}
else {textarea.select();}
try {document.execCommand("copy");}
catch(err){
if (errFn){
if (typeof errFn == "function"){errFn();}
else if (typeof errFn == "string"){
if ((errFn.indexOf("(") == -1) && (errFn.indexOf(")") == -1)){var cc = "()"} else {var cc = ""}
eval(errFn + cc);
}
}
}
document.body.removeChild(textarea);
currentFocus.focus();
};
関数が実行するコード:// JavaScript :( DOM )
document.getElementById(" ID").onclick = function(){
var text = document.getElementById(" ID").value; // var text = " "
copyText(text, errFn); // copyText(text) copyText(text, "errFn") copyText(text, "errFn(val)")
}; // Class getElementById getElementsByClass
// jQuery :
$(" ID Class").onclick(function(){
var text = $(" ID Class").val;// var text = " "
copyText(text, errFn);
});
//【 】
function errFn(){
console.log("copyText has error");
alert(" ");
};
第二版関数:以下の関数は、
errFn
文字列内のテキストをクリップボードにコピーし、ブール値を返します.function copyText(text){
var textarea = document.createElement("textarea");
var currentFocus = document.activeElement;
document.body.appendChild(textarea);
textarea.value = text;
textarea.focus();
if (textarea.setSelectionRange){textarea.setSelectionRange(0, textarea.value.length);}
else {textarea.select();}
try {var state = document.execCommand("copy");}
catch(err){var state = false;}
document.body.removeChild(textarea);
currentFocus.focus();
return state;
};
関数が実行するコード:// JavaScript :( DOM )
document.getElementById(" ID").onclick = function(){
var text = document.getElementById(" ID").value;
// var text = " "
var state = copyText(text);
if (state == true){
alert(" ");
} else if (state == false){
alert(" ");
}
//alert(state ? " " : " ")
//
};
// jQuery :
$(" ID Class").onclick(function(){
var v = $(" ID Class").val;
// var text = " "
var state = copyText(text);
if (state == true){
alert(" ");
} else if (state == false){
alert(" ");
}
//alert(state ? " " : " ")
//
});