From 231d30c5612f950cf20be414652de58738d9f20b Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 28 May 2026 08:17:25 +0200 Subject: [PATCH] migrating to js-maker --- racket-webview.rkt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/racket-webview.rkt b/racket-webview.rkt index 96bae6a..b4cade4 100644 --- a/racket-webview.rkt +++ b/racket-webview.rkt @@ -30,6 +30,7 @@ lru-cache racket-self-signed-cert simple-log + js-maker ) (provide webview-new-context @@ -396,6 +397,12 @@ #f)) +(define-syntax with-id->el + (syntax-rules () + ((_ id el e1 ...) + (js (let ((el (send document getElementById (eval id)))) + e1 ...))))) + (define-syntax with-id (syntax-rules () ((_ id el @@ -765,6 +772,7 @@ (define/contract (webview-call-js wv js) (-> wv-win? string? (or/c string? list? boolean? hash? symbol? number?)) + (displayln js) (let ((result (rkt-webview-call-js (wv-win-handle wv) js))) (if (webview-call-js-result? result) (if (eq? (car result) 'oke) @@ -786,9 +794,12 @@ (-> wv-win? symbol? (or/c string? xexpr?) symbol?) (if (string? html) (let ((r (webview-call-js wv - (with-id id el - ("el.innerHTML = '~a'; return true;" - (esc-quote html)))))) + (with-id->el id el + (set! (js-dot el innerHTML) (eval html)) + #t)))) + ;(with-id id el + ; ("el.innerHTML = '~a'; return true;" + ; (esc-quote html)))))) (if r 'oke 'failed)) (webview-set-innerHTML! wv id (xexpr->string html)) )