Si agrego un aviso a la función, funciona una vez, pero da el error:
"DOMException no detectada (en promesa): el documento no está enfocado" en el segundo intento.
Este es el código:
function site(str) { var url = prompt(); var text = 'The URL is '; (async() => { await navigator.clipboard.writeText(text + url); })(); } <button class="button" onclick='site()'>URL</button>Le pregunté a mi mejor amigo, Google, pero no puedo encontrar ninguna solución. ¿Qué estoy haciendo mal?
Probablemente se deba a este error en Chrome (problema n.º 1085949) que hace que su llamada prompt se centre en el Document y no lo devuelva cuando se cierra. No pude reproducir este problema en Safari y Firefox.
El mismo error se puede reproducir haciendo alert en lugar de prompt seguido de navigator.clipboard.writeText .
Su JS puede estar ejecutándose en una página secundaria. Lo siguiente funciona para mí:
await parent.navigator.clipboard.writeText('text to copy to Clipboard here.);