bigskysoftware / bigskysoftware/_hyperscript

Handling exceptions for writeText()

Abierto
#565 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
3.8k
Forks
172
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I'm unable to handle exception while a coping text to a clipboard idiomatically. Maybe it's not the only place for such behavior but it's the only one I've found.

I'm using qutebrowser and I've blocked programmatic access to a clipboard for websites.
Unfortunately, I don't know how to block access the same way for other browses =\

**Use case**: I want to show a notification that user has successfully copied text to the clipboard or if there is an error. To do so I have to handle exception that writeText() might throw.

I expect the following code to work:
```html

Copy

--
```
Output shows **Success** and console logs `Uncaught (in promise) DOMException: Write permission denied.`. `catch` doesn't seem to work.

There is another way to catch exceptions for an element (`on exception`):

```html

Copy

--
```

The same result: output shows **Success** and console logs `Uncaught (in promise) DOMException: Write permission denied.`.

Feels like exception isn't related to the element in any way.

## Sanity check

Just to make sure that exceptions are catchable:

```html

Copy

--
```
Shows **Error: I am thrown manually** in output and console is clean.

```html

Copy

--
```

This one is interesting. It shows **Error:** in output and picrelated in console

![image](https://github.com/user-attachments/assets/7c411767-d1ec-4a39-875f-ab1df4994397)

## Workaround

I've managed to get it working by calling writeText() in a more traditional way:

```html

Copy

--
```
Output has **Error: NotAllowedError: Write permission denied.** and a clean console.

```html

Copy

--
```

This one behaves the same way it does in sanity check. In catches the exception but error is empty while console has the following:

![image](https://github.com/user-attachments/assets/12685deb-e38a-4166-b148-ec74e75804b9)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduzca el problema con los ejemplos HTML proporcionados, comparando el comando writeText() con la llamada a navigator.clipboard.writeText(). Trace cómo catch y on exception gestionan la promesa del portapapeles rechazada y, a continuación, verifique que el error llega al controlador sin informar de éxito ni registrar un rechazo no gestionado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
frontend, web-dev
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.