从输入框复制文本出来并且让文本呈现达到业务需求
首先需要一个textarea文本域和一个按钮
如果只是单纯的手动换行在文本域里
例子
<body>
<textarea id="paycallback_url" class="form-control" readonly="readonly"style="resize: none; height:200px;width:100%;">
11111111111111111111111111
22222222222222222222222222
33333333333333333333333333
11221344444444444444444444
</textarea>
<button id="CopyBtn">复制</button>
</body>
<script>
document.querySelector('#CopyBtn').onclick = function () {
var dd = document.querySelector('#paycallback_url');
dd.select();
document.execCommand("Copy");
alert('复制成功');
}
</script>
结果
因为代码里前面有空格所以复制出来也是有空格的
如果写成下面这样
<body>
<textarea id="paycallback_url" class="form-control" readonly="readonly"style="resize: none; height:200px;width:100%;">
11111111111111111111111111
22222222222222222222222222
33333333333333333333333333
11221344444444444444444444
</textarea>
<button id="CopyBtn">复制</button>
</body>
<script>
document.querySelector('#CopyBtn').onclick = function () {
var dd = document.querySelector('#paycallback_url');
dd.select();
document.execCommand("Copy");
alert('复制成功');
}
</script>
结果
可以达到没有空格的效果但是代码又不太舒服
并且我们的场景是需要后端动态传值的传过来的文本复制出来是不会换行的
例子
<body>
<textarea id="paycallback_url" class="form-control" readonly="readonly"style="resize: none; height:200px;width:100%;"></textarea>
<button id="CopyBtn">复制</button>
</body>
<script>
document.querySelector('#CopyBtn').onclick = function () {
var dd = document.querySelector('#paycallback_url');
dd.select();
document.execCommand("Copy");
alert('复制成功');
}
// 模拟数据
document.querySelector("#paycallback_url").value = `1111111111111111111111111/n22222222222222222222222222/r3333333333333333333333333311221344444444444444444444`;
</script>
结果
换行符和回车符都是没有效果的
最后 我们通过ASCLL码来替代/n
例子
<body>
<textarea id="paycallback_url" class="form-control" readonly="readonly"style="resize: none; height:200px;width:100%;">
</textarea>
<button id="CopyBtn">复制</button>
</body>
<script>
document.querySelector('#CopyBtn').onclick = function () {
var dd = document.querySelector('#paycallback_url');
dd.select();
document.execCommand("Copy");
alert('复制成功');
}
// 模拟数据
document.querySelector("#paycallback_url").value = "1111111111111111111111111" + String.fromCharCode(10) + "22222222222222222222222222/r3333333333333333333333333311221344444444444444444444";
</script>
完美达到预期效果
如果服务端是TP的话还可以更简洁
<textarea id="paycallback_url" class="form-control" readonly="readonly"
style="resize: none; height:200px;width:100%;opacity: 0;"
>{$copyRow.id} {$copyRow.game_name} {$copyRow.sign_key} </textarea>
assign过来直接复制即可
如果发现文章有问题欢迎指正交流,看完点个赞一起学习一起进步,感谢大家的阅读~~