Merge pull request #1487 from lightpanda-io/nikneym/doc-element-dispatch

Changes to trigger `documentElement`s load event
This commit is contained in:
Halil Durak
2026-02-09 10:52:53 +03:00
committed by GitHub

View File

@@ -704,15 +704,19 @@ fn _documentIsComplete(self: *Page) !void {
// Dispatch `_to_load` events before window.load. // Dispatch `_to_load` events before window.load.
for (self._to_load.items) |element| { for (self._to_load.items) |element| {
const maybe_inline_listener = self.getAttrListener(element, .onload);
const event = try Event.initTrusted("load", .{}, self); const event = try Event.initTrusted("load", .{}, self);
// Dispatch inline event.
blk: {
const html_element = element.is(HtmlElement) orelse break :blk;
try self._event_manager.dispatchWithFunction( const listener = (try html_element.getOnLoad(self)) orelse break :blk;
element.asEventTarget(), ls.toLocal(listener).call(void, .{}) catch |err| {
event, log.warn(.event, "inline load event", .{ .element = element, .err = err });
ls.toLocal(maybe_inline_listener), };
.{ .context = "Page dispatch load events" }, }
);
// Dispatch events registered to event manager.
try self._event_manager.dispatch(element.asEventTarget(), event);
} }
// `_to_load` can be cleaned here. // `_to_load` can be cleaned here.