// contextmenu event is fired by mouse up.
await process_contextmenu_event({ isMousedown: false, preventEvent: false });
// contextmenu event is fired by mouse up even if mouse handler calls preventDefault.
await process_contextmenu_event({ isMousedown: false, preventEvent: true });
});
async function process_contextmenu_event({ isMousedown, preventEvent }) {
await SpecialPowers.contentTransformsReceived(window);
const target = document.getElementById("target");
let count = 0;
const promise = new Promise(resolve => {
target.addEventListener("mousedown", e => {
is(e.buttons, 2, "The right button down should be fired");
is(count++, 0, "The first event is mousedown");
if (isMousedown && preventEvent) {
e.preventDefault();
}
}, { once: true });
if (isMousedown) {
target.addEventListener("contextmenu", e => {
is(count++, 1, "The second event is contextmenu");
e.preventDefault();
}, { once: true });
target.addEventListener("mouseup", () => {
is(count++, 2, "The third event is mouseup");
resolve();
}, { once: true} );
} else {
target.addEventListener("mouseup", e => {
is(count++, 1, "The second event is mouseup");
if (preventEvent) {
e.preventDefault();
}
}, { once: true });
target.addEventListener("contextmenu", e => {
is(count++, 2, "The third event is contextmenu");
e.preventDefault();
resolve();
}, { once: true });
}
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.