按Tab键将TEXT复制到剪贴板,但是在哪里

时间:2018-04-02 21:34:23

标签: text copy clipboard

它可以工作,但复制文本的所有内容都在一行中。 有谁知道它为什么不在单独的行中显示它们 感谢

 function copyToClipboard(element) {
 var $temp = $("<input>");
 $("body").append($temp);
 $temp.val($(element).text()).select();
 document.execCommand("copy");
 $temp.remove();
 alert("The answer has been Copied");
}

<p id="p">Hello, <br>
please <br>
copy my text  <br>
</p>

<button onclick="copyToClipboard('#p')">Copy TEXT</button>

1 个答案:

答案 0 :(得分:0)

问题是因为<br>标记未被读取为新行。该修复涉及使用<br>查找并替换\r\n标记。

&#13;
&#13;
function copyToClipboard(element) {

  // REPLACE <BR> AND CREATE CLEAN STRING
  var brRegex = /<br\s*[\/]?>/gi;
  var cleanString = $(element).html().replace(brRegex,"\r\n");

  // TEMP VAR TO SELECT TEXT FROM
  var $temp = $("<textarea>");
  
  // ADD TEMP TO BODY
  $("body").append($temp);
  
  // SET TEMP VALUE
  $temp.val(cleanString);
  
  // SELECT TEMP
  $temp.select();
  
  // EXECUTE COPY
  document.execCommand("copy");
  
  // REMOVE TEMP ELEMENT
  $temp.remove();
  
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="p">Hello, <br>
please <br>
copy my text  <br>
</p>

<button onclick="copyToClipboard('#p')"> Copy TEXT </button>
&#13;
&#13;
&#13;