2017-07-13 7 views
7

オンラインで20分の検索を行ったが、見つからなかった。私が望むのは、ボタンを使わずに、クリックしてテキスト文字列をにコピーできるようにすることです。テキスト文字列は "span"クラス内にあります。Javascript - クリック時にテキスト文字列をコピー

  1. ユーザが任意の助けをいただければ幸いです

クリップボードにコピーされたテキスト文字列に

  • テキスト文字列をクリックする
  • テキスト文字列の上に置きます。ありがとう!

  • +0

    ですか?のように、span要素のクリックイベントハンドラを書く方法を知りたいですか? (ヒント:ボタンのクリックイベントハンドラと非常に似ています。)ユーザーがクリックするまで実際に何も起こらなければ、ホバリングに関するあなたのポイント1は無関係です。 – nnnnnn

    +0

    @matthew貼り付けたい部分をコピーした後、正確に何をしたいですか? – mayank

    答えて

    10

    あなたは、<span>要素にcopyイベントを添付するイベントハンドラ内document.execCommand("copy")を使用し、event.clipboardData

    .setData()方法で span .textContentevent.clipboardDataを設定することができますそれはあなたが立ち往生しているだけで、「ボタンなし」の部分0

    const span = document.querySelector("span"); 
     
    
     
    span.onclick = function() { 
     
        document.execCommand("copy"); 
     
    } 
     
    
     
    span.addEventListener("copy", function(event) { 
     
        event.preventDefault(); 
     
        if (event.clipboardData) { 
     
        event.clipboardData.setData("text/plain", span.textContent); 
     
        console.log(event.clipboardData.getData("text")) 
     
        } 
     
    });
    <span>text</span>

    +0

    になりますが、テキストをコピーする方法を検索する上で質問に達することがあります。これを達成するには、兄弟のdivボタンをクリックしますか? – Flo

    +0

    @Flo同じパターンを使用することができます。 'copy'イベントを要素にアタッチし、イベントハンドラ内でクリップボードデータを設定します。 – guest271314

    5

    これを試してください。 document.execCommand('copy')

    1. 要素をクリックして、テキストをコピーし、この入力

    function copy(that){ 
     
    var inp =document.createElement('input'); 
     
    document.body.appendChild(inp) 
     
    inp.value =that.textContent 
     
    inp.select(); 
     
    document.execCommand('copy',false); 
     
    inp.remove(); 
     
    }
    <p onclick="copy(this)">hello man</p>

    10

    ​​からテキストをコピーしtmpの入力要素

  • を投稿してください。

    <link href='https://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'> 
    
    <p style="color:wheat;font-size:55px;text-align:center;">How to copy a TEXT to Clipboard on a Button-Click</p> 
    
    <center> 
    <p id="p1">This is TEXT 1</p> 
    <p id="p2">This is TEXT 2</p><br/> 
    
    <button onclick="copyToClipboard('#p1')">Copy TEXT 1</button> 
    <button onclick="copyToClipboard('#p2')">Copy TEXT 2</button> 
    
    <br/><br/><input class="textBox" type="text" id="" placeholder="Dont belive me?..TEST it here..;)" /> 
    </center> 
    

    のjQueryコードここ

    function copyToClipboard(element) { 
        var $temp = $("<input>"); 
        $("body").append($temp); 
        $temp.val($(element).text()).select(); 
        document.execCommand("copy"); 
        $temp.remove(); 
    } 
    
  • +0

    jQueryタグは質問 – guest271314

    +4

    には表示されません。回答者からの直接的な利益は得られませんが、多くのコミュニティメンバーは –

    関連する問題