我从plumwd中找到了这段很棒的代码,我非常喜欢它,因为它很简单,而且其中一个div是隐藏的,但不幸的是,它在一行中复制了这两个内容:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style> #HiddenURLdiv {display: none;}</style>
<div id="PreviewHeader">Hello stuff is here</div>
<div id="HiddenURLdiv">This one is hidden</div>
<a href="#" id="copystuff">Copy Stuff</a>
<div id="thecopiedtext"></div>
<script>
$("#copystuff").click(function() {
var temp = $("<input>");
$("body").append(temp);
var previewHeader = $("#PreviewHeader").text();
var HiddenURLdiv = $("#HiddenURLdiv").text();
var contentTogether = previewHeader + " " + HiddenURLdiv;
temp.val(contentTogether).select();
document.execCommand("copy");
$("#thecopiedtext").text(contentTogether);
temp.remove();
});
</script>
我已经尝试了我所知道的所有断行方法,希望将每个div内容放到单独的一行中,但似乎没有任何方法奏效。
我相信你们中的许多人都知道如何制作这个脚本,将每个div内容复制到单独的一行中,同时隐藏其中一个div。
,因为它只支持单行文本,并将删除换行符\n
添加新行#thecopiedtext
添加white-space:pre
以呈现换行符null
$("#copystuff").click(function() {
var temp = $("<textarea>");
$("body").append(temp);
var previewHeader = $("#PreviewHeader").text();
var HiddenURLdiv = $("#HiddenURLdiv").text();
var contentTogether = previewHeader + "\n" + HiddenURLdiv;
temp.val(contentTogether).select();
document.execCommand("copy");
$("#thecopiedtext").text(contentTogether);
temp.remove();
});
#HiddenURLdiv {
display: none;
}
#thecopiedtext {
white-space: pre;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="PreviewHeader">Hello stuff is here</div>
<div id="HiddenURLdiv">This one is hidden</div>
<a href="#" id="copystuff">Copy Stuff</a>
<div id="thecopiedtext"></div>
正如注释中提到的,您可以使用 null
来联系这两个元素,此外,您还应该使用.html()
,或者您可以将这两个元素包装在)标记中,因为
display:block
:$("#copystuff").click(function() {
var temp = $("<input>");
$("body").append(temp);
var previewHeader = $("#PreviewHeader").text();
var HiddenURLdiv = $("#HiddenURLdiv").text();
var contentTogether = `<div>${previewHeader}</div><div>${HiddenURLdiv}</div>`;
temp.val(`${previewHeader}${HiddenURLdiv}`).select();
document.execCommand("copy");
$("#thecopiedtext").html(contentTogether);
temp.remove();
});
#HiddenURLdiv {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="PreviewHeader">Hello stuff is here</div>
<div id="HiddenURLdiv">This one is hidden</div>
<a href="#" id="copystuff">Copy Stuff</a>
<div id="thecopiedtext"></div>