bigskysoftware / bigskysoftware/_hyperscript

Handling exceptions for writeText()

Ouverte
#565 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
JavaScript
Étoiles
3.8k
Forks
172
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Reproduisez le problème avec les exemples HTML fournis, en comparant la commande writeText() à l'appel de navigator.clipboard.writeText(). Suivez la manière dont la promesse du presse-papiers rejetée est gérée par catch et on exception, puis vérifiez que l'erreur atteint le gestionnaire sans signaler de succès ni consigner un rejet non géré.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
frontend, web-dev
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.