2017-09-27 16 views
0

J'ai le Javascript ci-dessous qui copie le contenu d'un div dans le presse-papiers.En utilisant Javascript pour couper et envoyer au presse-papiers

Le contenu du div varie toujours, mais les résultats ont toujours environ 5 lignes vides, chacune consistant en un espace vide avant les résultats. Je ne peux pas changer cela, donc je veux que la fonction ci-dessous pour couper tout l'espace blanc avant et après les résultats.

Je suis conscient que

str.trim()  

est probablement le meilleur, étant cependant un novice javascript, j'ai du mal à insérer dans le ci-dessous.

<script> 
function copyToClipboard(element) { 
var $temp = $("<textarea>"); 
var brRegex = /<br\s*[\/]?>/gi; 
$("body").append($temp); 
$temp.val( $(element).html().replace(brRegex, "\r\n").replace(/<\/?[a-zA-Z]+\/?>/g, '')).select(); 

document.execCommand("copy"); 
$temp.remove(); 
} 

Est-ce quelqu'un peut aider?

Merci!

Répondre

1

Votre extrait de code fonctionne parfaitement pour moi. Toutefois, si vous deviez insérer garniture quelque part, ce serait ici:

function copyToClipboard(element) { 
    var $temp = $("<textarea>"); 
    var brRegex = /<br\s*[\/]?>/gi; 
    $("body").append($temp); 
    $temp.val($(element).html().replace(brRegex, "\r\n").replace(/<\/?[a-zA-Z]+\/?>/g, '').trim()).select(); 
    document.execCommand("copy"); 
    $temp.remove(); 
} 

L'explication est que $ (élément) .html() est une chaîne, et est la chaîne vous voulez couper après vous remplacez les choses que vous voulez remplacer.

extrait de code HTML complet pour:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Copy</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script 
      src="https://code.jquery.com/jquery-1.12.4.min.js" 
      integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" 
      crossorigin="anonymous" 
     ></script> 
    </head> 
    <body> 
     <div class="copy" contenteditable="true">HI<br />I am me! <span>I want to kill you!</span></div> 
     <button class="copy-button">copy</button> 
     <script> 

      function copyToClipboard(element) { 
      var $temp = $("<textarea>"); 
      var brRegex = /<br\s*[\/]?>/gi; 
       $("body").append($temp); 
       $temp.val($(element).html().replace(brRegex, "\r\n").replace(/<\/?[a-zA-Z]+\/?>/g, '').trim()).select(); 
       document.execCommand("copy"); 
       $temp.remove(); 
      } 
      $('.copy-button').on('click', _ => { 
       copyToClipboard($('.copy')); 
       console.log("HI"); 
      }); 
     </script> 
    </body> 
</html> 
+0

Parfait! Cela a fonctionné un régal! Merci! – willmadd