From cc6587d6e5c47c21e192c5f185b8fa5fa51881e7 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Fri, 13 Mar 2026 18:49:26 +0300 Subject: [PATCH] make `body.onload` getter/setter alias to `window.onload` --- src/browser/webapi/element/html/Body.zig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/browser/webapi/element/html/Body.zig b/src/browser/webapi/element/html/Body.zig index dccb892d..79512baa 100644 --- a/src/browser/webapi/element/html/Body.zig +++ b/src/browser/webapi/element/html/Body.zig @@ -36,6 +36,16 @@ pub fn asNode(self: *Body) *Node { return self.asElement().asNode(); } +/// Special-case: `body.onload` is actually an alias for `window.onload`. +pub fn setOnLoad(_: *Body, callback: ?js.Function.Global, page: *Page) !void { + page.window._on_load = callback; +} + +/// Special-case: `body.onload` is actually an alias for `window.onload`. +pub fn getOnLoad(_: *Body, page: *Page) ?js.Function.Global { + return page.window._on_load; +} + pub const JsApi = struct { pub const bridge = js.Bridge(Body); @@ -44,6 +54,8 @@ pub const JsApi = struct { pub const prototype_chain = bridge.prototypeChain(); pub var class_id: bridge.ClassId = undefined; }; + + pub const onload = bridge.accessor(getOnLoad, setOnLoad, .{ .null_as_undefined = false }); }; pub const Build = struct {