copyButtons = document.querySelectorAll('.copy-button') img = document.createElement('img') img.src = '/loading.svg' img.style.filter = 'invert(45%) sepia(99%) saturate(2815%) hue-rotate(179deg) brightness(97%) contrast(103%)' for(button of copyButtons) { button.addEventListener('click', async (event) => { clickedButton = event.target resultId = clickedButton.id.split('-')[1] // select button icon and remove it let buttonNode = document.querySelector(`#copyButton-${resultId}`) let icon = buttonNode.children[0] icon.classList.remove('icon-copy') buttonNode.insertBefore(img, buttonNode.firstChild) // Get the text field let copyText = document.getElementById(`urlInput-${resultId}`); // Select the text field copyText.select(); copyText.setSelectionRange(0, 99999); // For mobile devices // Copy the text inside the text field navigator.clipboard.writeText(await shortenUrl(copyText, 1)); buttonNode.removeChild(buttonNode.children[0]) icon.classList.add('icon-copy') }) }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter