mirror of
https://github.com/denoland/deno.git
synced 2025-10-01 06:31:15 +00:00
feat: window.onunload (#3023)
This commit is contained in:
parent
d32f39f2ec
commit
c920c5f62a
9 changed files with 126 additions and 20 deletions
|
@ -371,12 +371,17 @@ fn run_script(flags: DenoFlags, argv: Vec<String>) {
|
|||
js_check(worker.execute("denoMain()"));
|
||||
debug!("main_module {}", main_module);
|
||||
|
||||
let mut worker_ = worker.clone();
|
||||
|
||||
worker
|
||||
.execute_mod_async(&main_module, false)
|
||||
.and_then(move |()| {
|
||||
js_check(worker.execute("window.dispatchEvent(new Event('load'))"));
|
||||
worker.then(|result| {
|
||||
worker.then(move |result| {
|
||||
js_check(result);
|
||||
js_check(
|
||||
worker_.execute("window.dispatchEvent(new Event('unload'))"),
|
||||
);
|
||||
Ok(())
|
||||
})
|
||||
})
|
||||
|
|
|
@ -5,3 +5,7 @@ got load event in onload function
|
|||
got load event in event handler (nest_imported)
|
||||
got load event in event handler (imported)
|
||||
got load event in event handler (main)
|
||||
got unload event in onunload function
|
||||
got unload event in event handler (nest_imported)
|
||||
got unload event in event handler (imported)
|
||||
got unload event in event handler (main)
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
import { assert } from "../../../js/deps/https/deno.land/std/testing/asserts.ts";
|
||||
import "./nest_imported.ts";
|
||||
window.addEventListener(
|
||||
"load",
|
||||
(e: Event): void => {
|
||||
console.log(`got ${e.type} event in event handler (imported)`);
|
||||
}
|
||||
);
|
||||
|
||||
const handler = (e: Event): void => {
|
||||
assert(!e.cancelable);
|
||||
console.log(`got ${e.type} event in event handler (imported)`);
|
||||
};
|
||||
|
||||
window.addEventListener("load", handler);
|
||||
window.addEventListener("unload", handler);
|
||||
console.log("log from imported script");
|
||||
|
|
|
@ -1,14 +1,23 @@
|
|||
import { assert } from "../../../js/deps/https/deno.land/std/testing/asserts.ts";
|
||||
import "./imported.ts";
|
||||
|
||||
window.addEventListener(
|
||||
"load",
|
||||
(e: Event): void => {
|
||||
console.log(`got ${e.type} event in event handler (main)`);
|
||||
}
|
||||
);
|
||||
const eventHandler = (e: Event): void => {
|
||||
assert(!e.cancelable);
|
||||
console.log(`got ${e.type} event in event handler (main)`);
|
||||
};
|
||||
|
||||
window.addEventListener("load", eventHandler);
|
||||
|
||||
window.addEventListener("unload", eventHandler);
|
||||
|
||||
window.onload = (e: Event): void => {
|
||||
assert(!e.cancelable);
|
||||
console.log(`got ${e.type} event in onload function`);
|
||||
};
|
||||
|
||||
window.onunload = (e: Event): void => {
|
||||
assert(!e.cancelable);
|
||||
console.log(`got ${e.type} event in onunload function`);
|
||||
};
|
||||
|
||||
console.log("log from main");
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
window.addEventListener(
|
||||
"load",
|
||||
(e: Event): void => {
|
||||
console.log(`got ${e.type} event in event handler (nest_imported)`);
|
||||
}
|
||||
);
|
||||
import { assert } from "../../../js/deps/https/deno.land/std/testing/asserts.ts";
|
||||
|
||||
const handler = (e: Event): void => {
|
||||
assert(!e.cancelable);
|
||||
console.log(`got ${e.type} event in event handler (nest_imported)`);
|
||||
};
|
||||
|
||||
window.addEventListener("load", handler);
|
||||
window.addEventListener("unload", handler);
|
||||
console.log("log from nest_imported script");
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
console.log("from imported script");
|
Loading…
Add table
Add a link
Reference in a new issue