網頁上按一下複製文字到剪貼簿(附小雷點)
最近遇到需求想要在網頁上加入按一下複製內容到剪貼簿的功能,中間還不小心遇到小雷點分享一下。
我建構一個簡單的文字input放置要給使用者拷貝的資料,以及一個按鈕讓使用者點選複製到剪貼簿
1. body標籤放置
<input type="text" value="Hello World" id="myInput">
<button onclick="copyToClipboard(this);" data-input-id="myInput">
<i class="fa fa-clipboard" aria-hidden="true"></i>
</button>
按鈕上放置了一個fontawesome v4.7的剪貼簿圖示
2. script標籤放置
<script>
function copyToClipboard(e) {
console.log('input id:', e.dataset.inputId);
var input = document.getElementById(e.dataset.inputId);
navigator.clipboard.writeText(input.value);
alert('已經拷貝整個文字"' + input.value + '"');
}
</script>
雷點說明
這裡遭遇是如果onclick的copyToClipboard上使用event而不是this, 就會讓copyToClipboard內的e.target產生兩種狀況。1. 點擊圖示 2. 點擊其他空白處,會產生不同的e.target,導致我要用dataset取的目前連結的input id失敗。
留言