bigskysoftware / bigskysoftware/_hyperscript
Handling exceptions for writeText()
- Dominant language
- JavaScript
- Stars
- 3.8k
- Forks
- 172
- PR merge metrics
- No merged PRs in 30d
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

## 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:

Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the issue with the supplied HTML examples, comparing the writeText() command with call navigator.clipboard.writeText(). Trace how the rejected clipboard promise is handled by catch and on exception, then verify that the error reaches the handler without reporting success or logging an unhandled rejection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100