Work around Firefox's refusal to dispatch events on disabled elements. Fixes #31393
Brought to you by a 12 year old Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=329509
This commit is contained in:
parent
93e6a0ec55
commit
21417e02e9
|
@ -23,11 +23,20 @@ export function findElement(root, selector) {
|
|||
}
|
||||
|
||||
export function dispatchEvent(element, type, eventInit = {}) {
|
||||
const { disabled } = element
|
||||
const { bubbles, cancelable, detail } = eventInit
|
||||
const event = document.createEvent("Event")
|
||||
|
||||
event.initEvent(type, bubbles || true, cancelable || true)
|
||||
event.detail = detail || {}
|
||||
element.dispatchEvent(event)
|
||||
|
||||
try {
|
||||
element.disabled = false
|
||||
element.dispatchEvent(event)
|
||||
} finally {
|
||||
element.disabled = disabled
|
||||
}
|
||||
|
||||
return event
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue