複製到剪貼板,粘貼進微信,換行符失效

問題描述

微信(windows)版本:v2.9.0

windows環境下,使用 copy-to-clipboard 實現 複製到剪貼板,粘貼進微信(windows),換行符失效。

原因

閱讀 copy-to-clipboard,clipboard-copy 等 package 源碼,發現實現方式是把數據放進 span 的 textContent,但是數據被 span 標籤格式化,數據前後發生了改變,導致換行符失效。

也有實現方式是把數據放進 input 的 value,同樣數據前後發生了改變,換行符失效。

ps:把複製前後的數據打印進控制檯,看起來沒有區別,因爲控制檯對數據進行了轉碼,如何證明不一樣,待研究。(在瀏覽器的控制檯,txt文件,複製到 textarea 轉爲 charCode 均顯示一致。)

解決方案

textarea 天然支持 換行符,使用 textarea 代替 span 或 input。

function copyToClipboard(txt) {
  var textarea = document.createElement("textarea");
  textarea.value = txt;
  document.body.appendChild(textarea);
  textarea.select();
  document.execCommand("copy");
  document.body.removeChild(textarea);
}

whosmeya.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章