при нажатии на баттон, содержимое стронга копируется через раз, то с первого раза, то через два-три раза вообще, то есть нет даже связи никакой. Как сделать, чтобы при нажатии на баттон, содержимое стронга копировалось каждый раз? <strong class="text-primary" id="card">ЭТО НУЖНО СКОПИРОВАТЬ</strong><button id="button">КНОПКА КОПИРОВАТЬ</button> Код <strong class="text-primary" id="card">ЭТО НУЖНО СКОПИРОВАТЬ</strong><button id="button">КНОПКА КОПИРОВАТЬ</button> JS var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content)); Код var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content));
Giovanna38, плюс мозилла добавляет card уже к тому, что было в буфере обмена. Было в буфере допустим "хуй", жму кнопку копировать номер карты, в буфере получается "номеркартыХУЙ"
window.onload = function() { var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content)); } Код window.onload = function() { var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content)); }
Мб кто-то столкнётся с такой же проблемой, решил. Короче ебался весь день, придумал абсолютно тупорылое, но рабочее решение. Просто повесил три события вызова функции на батон, в итоге содержимое стронга копируется 10 из 10. получилось так: var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content)); button.addEventListener('click', () => copyToClipboard(content)); button.addEventListener('click', () => copyToClipboard(content)); Код var content = document.querySelector("#card"); var button = document.querySelector("#button"); function copyToClipboard(el) { var range; if (document.selection) { range = document.body.createTextRange(); range.moveToElementText(el); range.select().createTextRange(); } else if (window.getSelection) { range = document.createRange(); range.selectNode(el); window.getSelection().addRange(range); } else return; document.execCommand("copy"); window.getSelection().removeAllRanges(); } button.addEventListener('click', () => copyToClipboard(content)); button.addEventListener('click', () => copyToClipboard(content)); button.addEventListener('click', () => copyToClipboard(content)); То чувство, когда ты программист от бога