簡體   English   中英

JavaScript副本 <p> 用html格式標記到clipbord

[英]Javascript copy <p> tag with html format to clipbord

我正在嘗試使用javascript從ap標簽復制所有內容。 它可以工作,但是它會將文本復制到一長行文本中。 我希望它使用break標簽以這種格式復制,就像有人用鼠標復制/粘貼一樣:

當前時間: :

發現時間:

環境溫度°C

筆記:

頻率:

可重現?”

非常感謝您的幫助。

  <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>title</title>
      </head>
      <body> 
      <h2>Documentation Sheet</h2>

     <p id="p1">
     Current Time: :<br>
     Time Found: :<br>
     Ambient Temp: °C<br>
     <br>
     <br>
     Notes:
     <br>
     <br>
     Frequency:<br>
    Reproducible? 
     </p>

      <button onclick="copyToClipboard('#p1')">Copy text</button>

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

      </body>

      <script>

      function copyToClipboard(element) {
      var $temp = $("<input>");
      $("body").append($temp);
      $temp.val($(element).text()).select();
      document.execCommand("copy");
      $temp.remove();
    }
      </script>
    </html>ere

可以編寫一個函數來做到這一點,例如:

function copyToClipboard(id) {
        var from = document.getElementById(id);
        var range = document.createRange();
        window.getSelection().removeAllRanges();
        range.selectNode(from);
        window.getSelection().addRange(range);
        document.execCommand('copy');
        window.getSelection().removeAllRanges();
 }

注意:我的解決方案不需要jQuery,並且將文檔ID作為輸入,所以請不要忘記省略“#”!

只需按以下方式使用它:

 <button onClick="copyToClipboard('p1')">Copy text</button>

我認為沒有一種快捷簡便的方法可以完成您想做的事情。 您必須使用html()而不是text()來提取<p>標記的內容,但是隨后您將需要做一些工作來處理返回的HTML-剝離那些應該忽略,轉換實體,將內部<p><br>轉換為換行符,等等。

因此,您需要像這樣更改此行:

$temp.val(parseHtml($(element).html())).select();

然后將進行更parseHtml()工作來定義parseHtml()函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM