Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

862
Views
Copiar texto al portapapeles: no se pueden leer las propiedades de la lectura indefinida 'writeText'

tengo un boton

ingrese la descripción de la imagen aquí

Cuando hice clic en COPIAR

 copyImageLinkText({ mouseenter, mouseleave }, e) { this.showCopiedText = !this.showCopiedText navigator.clipboard.writeText(this.imageLink) clearTimeout(this._timerId) mouseenter(e) this._timerId = setTimeout(() => mouseleave(e), 1000) },

Esta línea parece funcionar perfectamente localmente en mi MacBook Pro

 navigator.clipboard.writeText(this.imageLink)

No funciona cuando lo compilo y lo implemento en mi servidor de desarrollo.

TypeError: no se pueden leer las propiedades de undefined (leyendo 'writeText')

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El uso de navigator.clipboard requiere un origen seguro. Entonces, si su entorno de desarrollo se sirve a través de HTTP, entonces el método del portapapeles no estará disponible.

De acuerdo con los documentos del Clipboard de MDN: "Esta función solo está disponible en contextos seguros (HTTPS)"

Tal vez podría verificar si este método está disponible con window.isSecureContext y deshabilitar el botón Copiar texto en consecuencia.


Solución alterna

La mejor opción es usar HTTPS en su entorno de desarrollo.

Pero dado que solicitó una solución alternativa, aquí hay una muestra de trabajo (muy pirateada). Utiliza el comando Document.exec , que está en desuso en favor de ClipboardAPI .

 function unsecuredCopyToClipboard(text) { const textArea = document.createElement("textarea"); textArea.value = text; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); } catch (err) { console.error('Unable to copy to clipboard', err); } document.body.removeChild(textArea); }

Luego, puede usar navigator.clipboard == undefined para usar el método alternativo; de lo contrario, use la función normal navigator.clipboard.writeText(...) donde se admita.

about 4 years ago · Juan Pablo Isaza Report

0

Es mejor usar un async y poner su código en el bloque try catch .

 async copyCode() { try { await navigator.clipboard.writeText(this.input); } catch (e) { console.log(e); } }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!