經常見到這么一個場景,就是點擊一個按鈕,實現復制鏈接到剪切板。
可能都會想到document.execCommand這個方法,以及document.createRange, window.getSelection 等。如
// html
<span class = "target"> https://github.com/liuhanqu/clipboard </span>
// js
var node = document.getElementById('target');
var range = document.createRange();
range.selectNode(node);
window.getSelection().addRange(range);
但是,上面的做法,對于一些瀏覽器的兼容性不是很好。 這時候,就可以利用input、textarea的原生方法select, 用幾行代碼輕松實現復制或者剪切功能
// html
<input class="target" value = "https://github.com/liuhanqu/clipboard" readonly>
<button id = "trigger">復制</button>
// js
var inp = document.getElementById('target');
var btn = document.getElementById('trigger');
btn.addEventListener('click', function(){
inp.select();
document.execCommand('copy);
})
最近擼了一個clipboard組件,但只是對于google比較友好,具體可以看這里,覺得不錯的話,可以star一下喲
https://github.com/liuhanqu/clipboard