diff --git a/src/browser/tests/element/html/link.html b/src/browser/tests/element/html/link.html
index 6066403d..bed5e6ab 100644
--- a/src/browser/tests/element/html/link.html
+++ b/src/browser/tests/element/html/link.html
@@ -69,3 +69,18 @@
testing.eventually(() => testing.expectEqual(false, fired));
}
+
+
diff --git a/src/browser/webapi/element/html/Link.zig b/src/browser/webapi/element/html/Link.zig
index 7f6b48fc..ca2b0cbe 100644
--- a/src/browser/webapi/element/html/Link.zig
+++ b/src/browser/webapi/element/html/Link.zig
@@ -50,7 +50,12 @@ pub fn getHref(self: *Link, page: *Page) ![]const u8 {
}
pub fn setHref(self: *Link, value: []const u8, page: *Page) !void {
- try self.asElement().setAttributeSafe(comptime .wrap("href"), .wrap(value), page);
+ const element = self.asElement();
+ try element.setAttributeSafe(comptime .wrap("href"), .wrap(value), page);
+
+ if (element.asNode().isConnected()) {
+ try page.linkAddedCallback(self);
+ }
}
pub fn getRel(self: *Link) []const u8 {