javascript - 复制按钮保留换行符

标签 javascript

我有一些非常基本的 Javascript,可以在按下按钮时复制文本。我的问题是它不保留换行符:

<script>
function copyToClipboard(element) {
  var $temp = $("<input>");
  $("body").append($temp);
  $temp.val($(element).text()).select();
  document.execCommand("copy");
  $temp.remove();
}
</script>

我真的很想在上面的脚本中添加一些东西,以避免已经在网站上做出巨大的改变。

我在其他帖子上看到过一些东西,例如:

post.innerHTML = post.innerHTML.replace(/\n/g, '<br>\n');

这在理论上可行(我认为),但我不喜欢 Javascript。

有什么建议吗?

谢谢

最佳答案

首先,<input>元素不保留换行符。您可以使用 <textarea>元素代替。由于您的 HTML 可能包含 <br>元素而不是换行符,我还建议使用 jQuery 来添加 \r\n在每个 <br> 之前.

function copyToClipboard(element) {
  var text = $(element).clone().find('br').prepend('\r\n').end().text()
  element = $('<textarea>').appendTo('body').val(text).select()
  document.execCommand('copy')
  element.remove()
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p contenteditable="true">Type to edit <br> this text</p>
<button onclick="copyToClipboard('p')">Copy to Clipboard</button>

关于javascript - 复制按钮保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42816349/

相关文章:

javascript - 如果使用正则表达式找到,则提取字符串

javascript - Angular 错误 : [$injector:unpr] while adding ui. Bootstrap

javascript - 通过对象id获取对象属性

javascript - 通过伪经典实例化(JavaScript)掌握原型(prototype)继承

javascript - 是否有使用 Chrome 调试协议(protocol)/API 的浏览器库?

javascript - Ember.js 2 当您点击它的路线时触发 Controller 操作

php - 动态创建的 HTML 文件输入元素不发布数据

javascript - 如何使用 google geochart 为文本启用悬停事件

javascript - React-Native 将应用链接到 Facebook Messenger

javascript - react : TypeError: Cannot read property 'addEventListener' of null