diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-04-30 22:18:15 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-04-30 22:39:28 +0200 |
commit | 6826651f2d3a414b0a05730a3ff577ae0922a62f (patch) | |
tree | 9061ae030283990b4b45684c0e7046fae0cfa342 /src/JavaScript.hs | |
parent | 833c42096eb8e479855bd4ca9ecbfe3bc08a1543 (diff) |
Show and send direct messages
Diffstat (limited to 'src/JavaScript.hs')
-rw-r--r-- | src/JavaScript.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/JavaScript.hs b/src/JavaScript.hs index 7f1c0f9..21571ea 100644 --- a/src/JavaScript.hs +++ b/src/JavaScript.hs @@ -1,4 +1,6 @@ module JavaScript ( + getElementById, + asEventListener, addEventListener, @@ -8,11 +10,19 @@ module JavaScript ( import GHC.Wasm.Prim +getElementById :: String -> IO JSVal +getElementById = js_document_getElementById . toJSString +foreign import javascript unsafe "document.getElementById($1)" + js_document_getElementById :: JSString -> IO JSVal + foreign import javascript "wrapper" asEventListener :: (JSVal -> IO ()) -> IO JSVal +addEventListener :: JSVal -> String -> (JSVal -> IO ()) -> IO () +addEventListener obj ev cb = do + js_addEventListener obj (toJSString ev) =<< asEventListener cb foreign import javascript unsafe "$1.addEventListener($2, $3)" - addEventListener :: JSVal -> JSString -> JSVal -> IO () + js_addEventListener :: JSVal -> JSString -> JSVal -> IO () consoleLog :: String -> IO () consoleLog = js_consoleLog . toJSString |