|
|
| (2 versions intermédiaires par le même utilisateur non affichées) |
| Ligne 1 : |
Ligne 1 : |
| function fallbackCopyText(text) {
| |
| const textarea = document.createElement("textarea");
| |
| textarea.value = text;
| |
| textarea.setAttribute("readonly", "");
| |
| textarea.style.position = "absolute";
| |
| textarea.style.left = "-9999px";
| |
| document.body.appendChild(textarea);
| |
| textarea.select();
| |
| try {
| |
| document.execCommand("copy");
| |
| } catch (err) {
| |
| console.error("Échec de la copie fallback :", err);
| |
| }
| |
| document.body.removeChild(textarea);
| |
| }
| |
|
| |
|
| document.addEventListener('DOMContentLoaded', function () {
| |
| document.querySelectorAll('.copy-button').forEach(button => {
| |
| button.addEventListener('click', function () {
| |
| const targetId = this.getAttribute('data-copy-target');
| |
| const target = document.getElementById(targetId);
| |
| if (!target) return;
| |
| const text = target.innerText || target.textContent;
| |
| // Essayons clipboard.writeText d'abord
| |
| if (navigator.clipboard && window.isSecureContext) {
| |
| navigator.clipboard.writeText(text).then(() => {
| |
| this.textContent = '✅ Copié';
| |
| setTimeout(() => this.textContent = '📋 Copier', 2000);
| |
| }).catch(() => {
| |
| fallbackCopyText(text);
| |
| this.textContent = '📎 Copié';
| |
| setTimeout(() => this.textContent = '📋 Copier', 2000);
| |
| });
| |
| } else {
| |
| fallbackCopyText(text);
| |
| this.textContent = '📎 Copié';
| |
| setTimeout(() => this.textContent = '📋 Copier', 2000);
| |
| }
| |
| });
| |
| });
| |
| });
| |