將文本復制到粘貼板上
js也是有復制命令的,那就是document.execCommand('copy'); 這個命令會將選中的內容復制到粘貼板中;
input和textarea元素有一個select()方法,這個方法可以幫我們自動選中。
function
copy(text) {
var
textareaEl = document.createElement(
'textarea'
);
textareaEl.setAttribute(
'readonly'
,
'readonly'
);
// 防止手機上彈出軟鍵盤
textareaEl.value = text;
document.body.appendChild(textareaEl);
textareaEl.select();
var
res = document.execCommand(
'copy'
);
document.body.removeChild(textareaEl);
console.log(
"復制成功"
);
return
res;
}
思路分析:
- 創建input或textarea,因為這兩個DOM具有select方法,可以選中內容(document.execCommand('copy')復制內容必要條件);
- 給input賦值為需要賦值的內容
- 將DOM添加到文檔中
- 選中輸入框中的值(也就是要復制的值)
- 執行復制命令
- 最后別忘了從文檔中移除DOM元素
- 此函數最后返回了復制是否成功的結果(true/false,document.execCommand('copy')本身會返回true/false),你可以做相應的交互提示等。
后面實踐發現,當要復制的內容中含有tab符號或者換行的符號時,復制的結果就不是想要的結果了,因為input不支持換行,然后textarea是支持的。
