Merge pull request #1384 from lightpanda-io/htmlscript-src-absolute

`HTMLScriptElement` should return an absolute URL in `src`
This commit is contained in:
Karl Seguin
2026-01-20 12:38:42 +08:00
committed by GitHub
2 changed files with 16 additions and 2 deletions

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<script src="../../../testing.js"></script>
<script id="script">
{
let s = document.createElement('script');
testing.expectEqual('', s.src);
s.src = '/over.9000.js';
testing.expectEqual('http://127.0.0.1:9582/over.9000.js', s.src);
}
</script>

View File

@@ -24,6 +24,7 @@ const Page = @import("../../../Page.zig");
const Node = @import("../../Node.zig");
const Element = @import("../../Element.zig");
const HtmlElement = @import("../Html.zig");
const URL = @import("../../URL.zig");
const Script = @This();
@@ -45,8 +46,9 @@ pub fn asNode(self: *Script) *Node {
return self.asElement().asNode();
}
pub fn getSrc(self: *const Script) []const u8 {
return self._src;
pub fn getSrc(self: *const Script, page: *Page) ![]const u8 {
if (self._src.len == 0) return "";
return try URL.resolve(page.call_arena, page.base(), self._src, .{});
}
pub fn setSrc(self: *Script, src: []const u8, page: *Page) !void {