2017-08-09 24 views
0

私は、テキストのコピーを自動化するプロジェクトに取り組んでいます。しかし、私がしたいのは、ユーザーがクリックして指定したテキストをクリップボードに挿入するボタンがあるだけです。定義済みテキストのJavaScriptボタン

私は今テキストエリアからテキストをコピーすることでこれを行うことができますが、テキストエリアの必要性を取り除き、ボタンを持っています。

ボタンを押すと、ボタンの値に基づいてテキストがクリップボードに挿入されます。

たとえば、以下のスニペットには、ボタンがコピーするテキスト領域があります。私は、ボタン、テキストなしの面積を有し、かつ一度あなたがボタンのテキストだけを使用したい場合は、クリップボード

<textarea id="alu1" rows="1" border="none" style="width:70%; height: 10px"> 
 
ssh -l admin:admin x.x.x.x 
 
</textarea> 
 
<button id="alu1copy" style="width: 50px; height: 20px">ssh -l admin:admin x.x.x.x</button> 
 
<script> 
 
var input1 = document.getElementById("alu1"); 
 
var button = document.getElementById("alu1copy"); 
 
button.addEventListener("click", function (event) { 
 
     event.preventDefault(); 
 
     input1.select(); 
 
     document.execCommand("copy"); 
 
    }); 
 
</script>

+0

ボタンでテキスト領域からテキストをクリップボードにコピーするか、ボタン上のテキストをコピーしますか?後者の場合、 'button.textContent'を使います。申し訳ありませんが私は誤解した場合。 – SGhaleb

答えて

0

これは動作します。それはthis exampleから採用されている。ここで

var copyBtn = document.getElementById('alu1copy'); 
 

 
copyBtn.addEventListener('click', function(event) { 
 
    var range = document.createRange(); 
 
    range.selectNode(copyBtn); 
 
    window.getSelection().addRange(range); 
 
    try { 
 
    var successful = document.execCommand('copy'); 
 
    var msg = successful ? 'successful' : 'unsuccessful'; 
 
    console.log('Copy command was ' + msg); 
 
    } catch(err) { 
 
    console.log('Unable to copy', err); 
 
    } 
 
    window.getSelection().removeAllRanges(); 
 
});
<button id="alu1copy">I will be copied</button>

CodePen Demoです。


更新:HTMLインラインJavaScriptの

<button id="alu1copy">Copy me now</button> 
 

 
<script> 
 
    var copyBtn = document.getElementById('alu1copy'); 
 

 
    copyBtn.addEventListener('click', function(event) { 
 
    var range = document.createRange(); 
 
    range.selectNode(copyBtn); 
 
    window.getSelection().addRange(range); 
 
    try { 
 
     var successful = document.execCommand('copy'); 
 
     var msg = successful ? 'successful' : 'unsuccessful'; 
 
     console.log('Copy command was ' + msg); 
 
    } catch (err) { 
 
     console.log('Unable to copy', err); 
 
    } 
 
    window.getSelection().removeAllRanges(); 
 
    }); 
 
</script>


あなたはより包括的なもの、this answer作品からのコードだけでなく必要な場合。

+0

これはまさに私が必要としていたものですが、このスニペットの外で動作させることはできません –

+0

これはCodePenでも機能します。元の例のようにインラインJavaScriptを使用したいですか?私はHTMLの中でインラインJSを使ってアップデートを投稿します。 –

+0

ダンチャームのように動作します、ありがとうございました。コンソールメッセージが必要ない凝縮されたバージョンがありますか? –

0

にボタンの名前をコピーします押したいです

var elem = document.getElementById("alu1copy"); 
var txt = elem.textContent || elem.innerText; 
0
<script> 
var input1 = document.getElementById("alu1"); 
var button = document.getElementById("alu1copy"); 
button.addEventListener("click", function (event) { 
     event.preventDefault(); 
     input1.innerHTML = e.target.textContent; 
    }); 
</script> 
0

<textarea id="alu1" rows="1" border="none" style="width:70%; height: 10px"> 
 
ssh -l admin:admin x.x.x.x 
 
</textarea> 
 
<button id="alu1copy" style="width: 50px; height: 20px">ssh -l admin:admin x.x.x.x</button> 
 
<script> 
 
var input1 = document.getElementById("alu1"); 
 
var button = document.getElementById("alu1copy"); 
 
button.addEventListener("click", function (event) { 
 
     event.preventDefault(); 
 
      button.innerText = input1.value; 
 
     document.execCommand("copy"); 
 
    }); 
 
</script>

関連する問題