它可以工作,但复制文本的所有内容都在一行中。 有谁知道它为什么不在单独的行中显示它们 感谢
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>
答案 0 :(得分:0)
问题是因为<br>
标记未被读取为新行。该修复涉及使用<br>
查找并替换\r\n
标记。
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;