JavaScriptでクリップボードにコピーするにはどうすればよいですか? または jQueryを使用してクライアントのクリップボードにテキストをコピーする方法は? 、私は範囲を狭めています:
調子:
そのような解決策や回避策はありますか?
Githubで別の素晴らしいリポジトリを見つけました。
クリップボードへのモダンなコピー。フラッシュなし。わずか3kbのgzip圧縮
ブラウザサポート:
変数文字列は、以下のjsコードを使用してクリップボードにコピーできます。
var text = 'text to copy';
var copyFrom = $('<textarea/>');
copyFrom.css({
position: "absolute",
left: "-1000px",
top: "-1000px",
});
copyFrom.text(text);
$('body').append(copyFrom);
copyFrom.select();
document.execCommand('copy');
実際にこれを理解している人のために、私はそれをchrome @JulianGregoireの答えに基づいて動作するようにしました。
私の意見では、コードを少し改善するために書き直しました。
el.onclick = function () {
var copy = function (e) {
e.preventDefault();
console.log('copy');
var text = "blabla"
if (e.clipboardData) {
e.clipboardData.setData('text/plain', text);
} else if (window.clipboardData) {
window.clipboardData.setData('Text', text);
}
}
window.addEventListener('copy', copy);
document.execCommand('copy');
window.removeEventListener('copy', copy);
}
注意:JulienGrégoireとまったく同じスクリプトを試しましたが、oncopyイベントリスナーをトリガーしませんでした。その理由は、bodyタグにユーザーが選択したCSSがあったからです。
したがって、必ず削除するか、イベントリスナーがアタッチされている要素でinitial
に設定してください。
ノックアウトを使用している場合、私のように(何らかの理由で私はまだです)、この質問/回答をご覧ください: