From e74d45d6c2ff5d290dcb3d2a7c3d6c055ebfa745 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Mon, 8 Dec 2025 12:10:22 +0100 Subject: [PATCH] implement Script.innerText --- src/browser/webapi/element/html/Script.zig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/browser/webapi/element/html/Script.zig b/src/browser/webapi/element/html/Script.zig index 5b760d75..64e574e6 100644 --- a/src/browser/webapi/element/html/Script.zig +++ b/src/browser/webapi/element/html/Script.zig @@ -15,6 +15,7 @@ // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +const std = @import("std"); const log = @import("../../../../log.zig"); const js = @import("../../../js/js.zig"); @@ -93,6 +94,10 @@ pub fn getNoModule(self: *const Script) bool { return self.asConstElement().getAttributeSafe("nomodule") != null; } +pub fn setInnerText(self: *Script, text: []const u8, page: *Page) !void { + try self.asNode().setTextContent(text, page); +} + pub const JsApi = struct { pub const bridge = js.Bridge(Script); @@ -107,6 +112,12 @@ pub const JsApi = struct { pub const onload = bridge.accessor(Script.getOnLoad, Script.setOnLoad, .{}); pub const onerror = bridge.accessor(Script.getOnError, Script.setOnError, .{}); pub const noModule = bridge.accessor(Script.getNoModule, null, .{}); + pub const innerText = bridge.accessor(_innerText, Script.setInnerText, .{}); + fn _innerText(self: *Script, page: *const Page) ![]const u8 { + var buf = std.Io.Writer.Allocating.init(page.call_arena); + try self.asNode().getTextContent(&buf.writer); + return buf.written(); + } }; pub const Build = struct {