summaryrefslogtreecommitdiff
path: root/src/JavaScript.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/JavaScript.hs')
-rw-r--r--src/JavaScript.hs12
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