Basic Javascript and DOM operations.
Basic operations for accessing the DOM tree and basic JavaScript functionality.structure Js : JS
signature JS =
sig
(* dom *)
eqtype win
eqtype doc
eqtype elem
val window : win
val openWindow : string -> string -> string -> win
val closeWindow : win -> unit
val windowDocument : win -> doc
val document : doc
val documentElement : doc -> elem
val documentWrite : doc -> string -> unit
val getElementById : doc -> string -> elem option
val parent : elem -> elem option
val firstChild : elem -> elem option
val lastChild : elem -> elem option
val nextSibling : elem -> elem option
val previousSibling : elem -> elem option
val innerHTML : elem -> string -> unit
val value : elem -> string
val setAttribute : elem -> string -> string -> unit
val removeAttribute : elem -> string -> unit
val createElement : string -> elem
val createTextNode : string -> elem
val createFragment : unit -> elem
val appendChild : elem -> elem -> unit
val removeChild : elem -> elem -> unit
val replaceChild : elem -> elem -> elem -> unit
type ns (* name space *)
val nsFromString : string -> ns
val createElementNS : ns -> string -> elem
val setAttributeNS : ns -> elem -> string -> string -> unit
(* events *)
datatype eventType = onclick | onchange | onkeypress
| onkeyup | onmouseover | onmouseout
val installEventHandler : elem -> eventType -> (unit -> bool) -> unit
val getEventHandler : elem -> eventType -> (unit -> bool) option
val onMouseMove : doc -> (int*int -> unit) -> unit
val onMouseMoveElem : elem -> (int*int -> unit) -> unit
(* timers *)
type intervalId
val setInterval : int -> (unit -> unit) -> intervalId
val clearInterval : intervalId -> unit
type timeoutId
val setTimeout : int -> (unit -> unit) -> timeoutId
val clearTimeout : timeoutId -> unit
(* Cookies *)
val setCookie : doc -> string -> unit
val getCookie : doc -> string
(* styles *)
val setStyle : elem -> string * string -> unit
(* Position *)
val xElem : elem -> int
val yElem : elem -> int
structure XMLHttpRequest : sig
type req
val new : unit -> req
val openn : req -> {method: string, url: string, async: bool} -> unit
val setRequestHeader : req -> string * string -> unit
val setResponseType : req -> string -> unit
val send : req -> string option -> unit
val sendBinary : req -> string -> unit
val state : req -> int (* 0,1,2,3,4 *)
val status : req -> int option (* 200, 404, ... *)
val onStateChange : req -> (unit -> unit) -> unit
val response : req -> string option
val responseArrBuf : req -> string option
val abort : req -> unit
end
val random : unit -> real
val loadScript : string -> (unit -> unit) -> unit
(* Shorthand notation for creating elements *)
structure Element : sig
val $ : string -> elem
val & : elem * elem -> elem
val taga0 : string -> (string*string)list -> elem
val tag0 : string -> elem
val tag : string -> elem -> elem
val taga : string -> (string*string)list -> elem -> elem
val nstaga0 : ns -> string -> (string*string)list -> elem
val nstag0 : ns -> string -> elem
val nstag : ns -> string -> elem -> elem
val nstaga : ns -> string -> (string*string)list -> elem -> elem
val toForeignPtr : elem -> foreignptr
val fromForeignPtr : foreignptr -> elem
end
end