5-- TODO: Get rid of this hack, and find a better way.
7isUndefined : Ptr -> IO Bool
10 FFun "(function(arg) { return arg === undefined;})" [FPtr] FString) p
15--------------------------------------------------------------------------------
17--------------------------------------------------------------------------------
19data Event : Type where
20 MkEvent : Ptr -> Event
22--------------------------------------------------------------------------------
24--------------------------------------------------------------------------------
26data Element : Type where
27 MkElem : Ptr -> Element
29setText : Element -> String -> IO ()
31 mkForeign (FFun ".textContent=" [FPtr, FString] FUnit) p s
34setOnClick : Element -> (Event -> IO Bool) -> IO ()
35setOnClick (MkElem e) f =
37 FFun "['onclick']=" [ FPtr
38 , FFunction (FAny Event) (FAny (IO Bool))
40--------------------------------------------------------------------------------
42--------------------------------------------------------------------------------
44data NodeList : Type where
45 MkNodeList : Ptr -> NodeList
47elemAt : NodeList -> Nat -> IO (Maybe Element)
48elemAt (MkNodeList p) i = do
49 e <- mkForeign (FFun ".item" [FPtr, FInt] FPtr) p (prim__truncBigInt_Int (cast i))
52 then return $ Just (MkElem e)
55--------------------------------------------------------------------------------
57--------------------------------------------------------------------------------
59data Interval : Type where
60 MkInterval : Ptr -> Interval
62setInterval : (() -> IO ()) -> Float -> IO Interval
65 FFun "setInterval" [FFunction FUnit (FAny (IO ())), FFloat] FPtr) f t
68clearInterval : Interval -> IO ()
69clearInterval (MkInterval p) =
70 mkForeign (FFun "clearInterval" [FPtr] FUnit) p
72--------------------------------------------------------------------------------
74--------------------------------------------------------------------------------
75data Timeout : Type where
76 MkTimeout : Ptr -> Timeout
78setTimeout : (() -> IO ()) -> Float -> IO Timeout
81 FFun "setTimeout" [FFunction FUnit (FAny (IO ())), FFloat] FPtr) f t
84clearTimeout : Timeout -> IO ()
85clearTimeout (MkTimeout p) =
86 mkForeign (FFun "clearTimeout" [FPtr] FUnit) p
88--------------------------------------------------------------------------------
90--------------------------------------------------------------------------------
91alert : String -> IO ()
93 mkForeign (FFun "alert" [FString] FUnit) msg
95--------------------------------------------------------------------------------
97--------------------------------------------------------------------------------
98query : String -> IO NodeList
100 e <- mkForeign (FFun "document.querySelectorAll" [FString] FPtr) q
101 return (MkNodeList e)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list