nim / latest / dom.html

std/dom

Source Edit

Declaration of the Document Object Model for the JavaScript backend.

Document Ready

  • Basic example of a document ready:

Example: cmd: -b:js -r:off

import std/dom
proc example(e: Event) = echo "Document is ready"
document.addEventListener("DOMContentLoaded", example)  # You can also use "load" event.
  • This example runs 5 seconds after the document ready:

Example: cmd: -b:js -r:off

import std/dom
proc example() = echo "5 seconds after document ready"
proc domReady(e: Event) = discard setTimeout(example, 5_000) # Document is ready.
document.addEventListener("DOMContentLoaded", domReady)

Document onUnload

  • Simple example of how to implement code that runs when the page unloads:

Example: cmd: -b:js -r:off

import std/dom
proc example(e: Event) = echo "Document is unloaded"
document.addEventListener("unload", example)  # You can also use "beforeunload".

Document Autorefresh

  • Minimal example of a document autorefresh:

Example: cmd: -b:js -r:off

import std/dom
proc example() = window.location.reload()
discard setTimeout(example, 5_000)

Imports

since

Types

AddEventListenerOptions = object
  capture*: bool
  once*: bool
  passive*: bool
Source Edit
AnchorElement {.importc.} = ref object of Element
  text*: cstring
  x*, y*: int
Source Edit
Blob {.importc.} = ref object of RootObj
  size*: int
see docs Source Edit
BoundingRect {.importc.} = object
  top*, bottom*, left*, right*, x*, y*, width*, height*: float
Source Edit
ClassList {.importc.} = ref object of RootObj
Source Edit
ClipboardEvent {.importc.} = object of Event
  clipboardData*: DataTransfer
see docs Source Edit
DataTransfer {.importc.} = ref object of RootObj
  dropEffect*: cstring
  effectAllowed*: cstring
  files*: seq[Element]
  items*: seq[DataTransferItem]
  types*: seq[cstring]
see docs Source Edit
DataTransferDropEffect {.pure.} = enum
  None = "none", Copy = "copy", Link = "link", Move = "move"
Source Edit
DataTransferEffectAllowed {.pure.} = enum
  None = "none", Copy = "copy", CopyLink = "copyLink", CopyMove = "copyMove",
  Link = "link", LinkMove = "linkMove", Move = "move", All = "all",
  Uninitialized = "uninitialized"
Source Edit
DataTransferItem {.importc.} = ref object of RootObj
  kind*: cstring
see docs Source Edit
DataTransferItemKind {.pure.} = enum
  File = "file", String = "string"
Source Edit
Document {.importc.} = ref object of Node
  activeElement*: Element
  documentElement*: Element
  alinkColor*: cstring
  bgColor*: cstring
  body*: Element
  charset*: cstring
  cookie*: cstring
  defaultCharset*: cstring
  fgColor*: cstring
  head*: Element
  hidden*: bool
  lastModified*: cstring
  linkColor*: cstring
  referrer*: cstring
  title*: cstring
  URL*: cstring
  visibilityState*: cstring
  vlinkColor*: cstring
  anchors*: seq[AnchorElement]
  forms*: seq[FormElement]
  images*: seq[ImageElement]
  applets*: seq[Element]
  embeds*: seq[EmbedElement]
  links*: seq[LinkElement]
  fonts*: FontFaceSet
Source Edit
DocumentOrShadowRoot {.importc.} = object of RootObj
  activeElement*: Element
Source Edit
DomEvent {.pure.} = enum
  Abort = "abort", BeforeInput = "beforeinput", Blur = "blur", Click = "click",
  CompositionEnd = "compositionend", CompositionStart = "compositionstart",
  CompositionUpdate = "compositionupdate", DblClick = "dblclick",
  Error = "error", Focus = "focus", FocusIn = "focusin", FocusOut = "focusout",
  Input = "input", KeyDown = "keydown", KeyPress = "keypress", KeyUp = "keyup",
  Load = "load", MouseDown = "mousedown", MouseEnter = "mouseenter",
  MouseLeave = "mouseleave", MouseMove = "mousemove", MouseOut = "mouseout",
  MouseOver = "mouseover", MouseUp = "mouseup", Resize = "resize",
  Scroll = "scroll", Select = "select", Storage = "storage", Unload = "unload",
  Wheel = "wheel"
see docs Source Edit
DomException {.importc.} = ref object
The DOMException interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. Each exception has a name, which is a short "CamelCase" style string identifying the error or abnormal condition. https://developer.mozilla.org/en-US/docs/Web/API/DOMException Source Edit
DomParser = ref object
DOM Parser object (defined on browser only, may not be on NodeJS). Source Edit
DragEvent {.importc.} = object of MouseEvent
  dataTransfer*: DataTransfer
see docs Source Edit
DragEventTypes = enum
  Drag = "drag", DragEnd = "dragend", DragEnter = "dragenter",
  DragExit = "dragexit", DragLeave = "dragleave", DragOver = "dragover",
  DragStart = "dragstart", Drop = "drop"
Source Edit
Element {.importc.} = ref object of Node
  className*: cstring
  classList*: ClassList
  checked*: bool
  defaultChecked*: bool
  defaultValue*: cstring
  disabled*: bool
  form*: FormElement
  name*: cstring
  readOnly*: bool
  options*: seq[OptionElement]
  selectedOptions*: seq[OptionElement]
  clientWidth*, clientHeight*: int
  contentEditable*: cstring
  isContentEditable*: bool
  dir*: cstring
  offsetHeight*: int
  offsetWidth*: int
  offsetLeft*: int
  offsetTop*: int
Source Edit
EmbedElement {.importc.} = ref object of Element
  height*: int
  hspace*: int
  src*: cstring
  width*: int
  vspace*: int
Source Edit
Event {.importc.} = ref object of RootObj
  bubbles*: bool
  cancelBubble*: bool
  cancelable*: bool
  composed*: bool
  currentTarget*: Node
  defaultPrevented*: bool
  eventPhase*: int
  target*: Node
  isTrusted*: bool
see docs Source Edit
EventPhase = enum
  None = 0, CapturingPhase, AtTarget, BubblingPhase
Source Edit
EventTarget {.importc.} = ref object of RootObj
  onabort*: proc (event: Event) {.closure.}
  onblur*: proc (event: Event) {.closure.}
  onchange*: proc (event: Event) {.closure.}
  onclick*: proc (event: Event) {.closure.}
  ondblclick*: proc (event: Event) {.closure.}
  onerror*: proc (event: Event) {.closure.}
  onfocus*: proc (event: Event) {.closure.}
  onkeydown*: proc (event: Event) {.closure.}
  onkeypress*: proc (event: Event) {.closure.}
  onkeyup*: proc (event: Event) {.closure.}
  onload*: proc (event: Event) {.closure.}
  onmousedown*: proc (event: Event) {.closure.}
  onmousemove*: proc (event: Event) {.closure.}
  onmouseout*: proc (event: Event) {.closure.}
  onmouseover*: proc (event: Event) {.closure.}
  onmouseup*: proc (event: Event) {.closure.}
  onreset*: proc (event: Event) {.closure.}
  onselect*: proc (event: Event) {.closure.}
  onstorage*: proc (event: Event) {.closure.}
  onsubmit*: proc (event: Event) {.closure.}
  onunload*: proc (event: Event) {.closure.}
  onloadstart*: proc (event: Event) {.closure.}
  onprogress*: proc (event: Event) {.closure.}
  onloadend*: proc (event: Event) {.closure.}
Source Edit
File {.importc.} = ref object of Blob
  lastModified*: int
  name*: cstring
see docs Source Edit
FileReader {.importc.} = ref object of EventTarget
The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. https://developer.mozilla.org/en-US/docs/Web/API/FileReader Source Edit
FileReaderState = distinct range[0'u16 .. 2'u16]
Source Edit
FontFaceSet {.importc.} = ref object
  ready*: FontFaceSetReady
  onloadingdone*: proc (event: Event)
see: docs Source Edit
FontFaceSetReady {.importc.} = ref object
  then*: proc (cb: proc ())
see: docs Source Edit
FormElement {.importc.} = ref object of Element
  acceptCharset*: cstring
  action*: cstring
  autocomplete*: cstring
  elements*: seq[Element]
  encoding*: cstring
  enctype*: cstring
  length*: int
  noValidate*: bool
  target*: cstring
see docs Source Edit
Frame {.importc.} = ref object of Window
Source Edit
History {.importc.} = ref object of RootObj
  length*: int
Source Edit
HTMLSlotElement {.importc.} = ref object of RootObj
  name*: cstring
Source Edit
ImageElement {.importc.} = ref object of Element
  border*: int
  complete*: bool
  height*: int
  hspace*: int
  lowsrc*: cstring
  src*: cstring
  vspace*: int
  width*: int
Source Edit
InputElement {.importc.} = ref object of Element
  formAction*: cstring
  formEncType*: cstring
  formMethod*: cstring
  formNoValidate*: bool
  formTarget*: cstring
  autofocus*: bool
  required*: bool
  value*: cstring
  validity*: ValidityState
  validationMessage*: cstring
  willValidate*: bool
  indeterminate*: bool
  alt*: cstring
  height*: cstring
  src*: cstring
  width*: cstring
  accept*: cstring
  files*: seq[Blob]
  autocomplete*: cstring
  maxLength*: int
  size*: int
  pattern*: cstring
  placeholder*: cstring
  min*: cstring
  max*: cstring
  selectionStart*: int
  selectionEnd*: int
  selectionDirection*: cstring
  dirName*: cstring
  accessKey*: cstring
  list*: Element
  multiple*: bool
  labels*: seq[Element]
  step*: cstring
  valueAsDate*: cstring
  valueAsNumber*: float
see docs Source Edit
Interval {.importc.} = ref object of RootObj
Source Edit
KeyboardEvent {.importc.} = ref object of UIEvent
  altKey*, ctrlKey*, metaKey*, shiftKey*: bool
  code*: cstring
  isComposing*: bool
  key*: cstring
  keyCode*: int
  location*: int
see docs Source Edit
KeyboardEventKey {.pure.} = enum
  Alt, AltGraph, CapsLock, Control, Fn, FnLock, Hyper, Meta, NumLock,
  ScrollLock, Shift, Super, Symbol, SymbolLock, ArrowDown, ArrowLeft,
  ArrowRight, ArrowUp, End, Home, PageDown, PageUp, Backspace, Clear, Copy,
  CrSel, Cut, Delete, EraseEof, ExSel, Insert, Paste, Redo, Undo, Accept, Again,
  Attn, Cancel, ContextMenu, Escape, Execute, Find, Finish, Help, Pause, Play,
  Props, Select, ZoomIn, ZoomOut, BrigtnessDown, BrigtnessUp, Eject, LogOff,
  Power, PowerOff, PrintScreen, Hibernate, Standby, WakeUp, AllCandidates,
  Alphanumeric, CodeInput, Compose, Convert, Dead, FinalMode, GroupFirst,
  GroupLast, GroupNext, GroupPrevious, ModeChange, NextCandidate, NonConvert,
  PreviousCandidate, Process, SingleCandidate, HangulMode, HanjaMode, JunjaMode,
  Eisu, Hankaku, Hiragana, HiraganaKatakana, KanaMode, KanjiMode, Katakana,
  Romaji, Zenkaku, ZenkakuHanaku, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11,
  F12, F13, F14, F15, F16, F17, F18, F19, F20, Soft1, Soft2, Soft3, Soft4,
  AppSwitch, Call, Camera, CameraFocus, EndCall, GoBack, GoHome, HeadsetHook,
  LastNumberRedial, Notification, MannerMode, VoiceDial, ChannelDown, ChannelUp,
  MediaFastForward, MediaPause, MediaPlay, MediaPlayPause, MediaRecord,
  MediaRewind, MediaStop, MediaTrackNext, MediaTrackPrevious, AudioBalanceLeft,
  AudioBalanceRight, AudioBassDown, AudioBassBoostDown, AudioBassBoostToggle,
  AudioBassBoostUp, AudioBassUp, AudioFaderFront, AudioFaderRear,
  AudioSurroundModeNext, AudioTrebleDown, AudioTrebleUp, AudioVolumeDown,
  AUdioVolumeMute, AudioVolumeUp, MicrophoneToggle, MicrophoneVolumeDown,
  MicrophoneVolumeMute, MicrophoneVolumeUp, TV, TV3DMode, TVAntennaCable,
  TVAudioDescription, TVAudioDescriptionMixDown, TVAudioDescriptionMixUp,
  TVContentsMenu, TVDataService, TVInput, TVInputComponent1, TVInputComponent2,
  TVInputComposite1, TVInputComposite2, TVInputHDMI1, TVInputHDMI2,
  TVInputHDMI3, TVInputHDMI4, TVInputVGA1, TVMediaContext, TVNetwork,
  TVNumberEntry, TVPower, TVRadioService, TVSatellite, TVSatelliteBS,
  TVSatelliteCS, TVSatelliteToggle, TVTerrestrialAnalog, TVTerrestrialDigital,
  TVTimer, AVRInput, AVRPower, ColorF0Red, ColorF1Green, ColorF2Yellow,
  ColorF3Blue, ColorF4Grey, ColorF5Brown, ClosedCaptionToggle, Dimmer,
  DisplaySwap, DVR, Exit, FavoriteClear0, FavoriteClear1, FavoriteClear2,
  FavoriteClear3, FavoriteRecall0, FavoriteRecall1, FavoriteRecall2,
  FavoriteRecall3, FavoriteStore0, FavoriteStore1, FavoriteStore2,
  FavoriteStore3, Guide, GuideNextDay, GuidePreviousDay, Info, InstantReplay,
  Link, ListProgram, LiveContent, Lock, MediaApps, MediaAudioTrack, MediaLast,
  MediaSkipBackward, MediaSkipForward, MediaStepBackward, MediaStepForward,
  MediaTopMenu, NavigateIn, NavigateNext, NavigateOut, NavigatePrevious,
  NextFavoriteChannel, NextUserProfile, OnDemand, Pairing, PinPDown, PinPMove,
  PinPUp, PlaySpeedDown, PlaySpeedReset, PlaySpeedUp, RandomToggle,
  RcLowBattery, RecordSpeedNext, RfBypass, ScanChannelsToggle, ScreenModeNext,
  Settings, SplitScreenToggle, STBInput, STBPower, Subtitle, Teletext,
  VideoModeNext, Wink, ZoomToggle, SpeechCorrectionList, SpeechInputToggle,
  Close, New, Open, Print, Save, SpellCheck, MailForward, MailReply, MailSend,
  LaunchCalculator, LaunchCalendar, LaunchContacts, LaunchMail,
  LaunchMediaPlayer, LaunchMusicPlayer, LaunchMyComputer, LaunchPhone,
  LaunchScreenSaver, LaunchSpreadsheet, LaunchWebBrowser, LaunchWebCam,
  LaunchWordProcessor, LaunchApplication1, LaunchApplication2,
  LaunchApplication3, LaunchApplication4, LaunchApplication5,
  LaunchApplication6, LaunchApplication7, LaunchApplication8,
  LaunchApplication9, LaunchApplication10, LaunchApplication11,
  LaunchApplication12, LaunchApplication13, LaunchApplication14,
  LaunchApplication15, LaunchApplication16, BrowserBack, BrowserFavorites,
  BrowserForward, BrowserHome, BrowserRefresh, BrowserSearch, BrowserStop,
  Key11, Key12, Separator
see docs Source Edit
LinkElement {.importc.} = ref object of Element
  target*: cstring
  text*: cstring
  x*: int
  y*: int
Source Edit
Location {.importc.} = ref object of RootObj
  hash*: cstring
  host*: cstring
  hostname*: cstring
  href*: cstring
  pathname*: cstring
  port*: cstring
  protocol*: cstring
  search*: cstring
  origin*: cstring
Source Edit
LocationBar {.importc.} = object of RootObj
  visible*: bool
Source Edit
MediaQueryList {.importc.} = ref object of EventTarget
  matches*: bool
  media*: cstring
Source Edit
MimeType {.importc.} = object of RootObj
  description*: cstring
  enabledPlugin*: ref Plugin
  suffixes*: seq[cstring]
Source Edit
MouseButtons = enum
  NoButton = 0, PrimaryButton = 1, SecondaryButton = 2, AuxilaryButton = 4,
  FourthButton = 8, FifthButton = 16
Source Edit
MouseEvent {.importc.} = ref object of UIEvent
  altKey*, ctrlKey*, metaKey*, shiftKey*: bool
  button*: int
  buttons*: int
  clientX*, clientY*: int
  movementX*, movementY*: int
  offsetX*, offsetY*: int
  pageX*, pageY*: int
  relatedTarget*: EventTarget
  screenX*, screenY*: int
  x*, y*: int
see docs Source Edit
Node {.importc.} = ref object of EventTarget
  attributes*: seq[Node]
  childNodes*: seq[Node]
  children*: seq[Node]
  data*: cstring
  firstChild*: Node
  lastChild*: Node
  nextSibling*: Node
  nodeName*: cstring
  nodeType*: NodeType
  nodeValue*: cstring
  parentNode*: Node
  content*: Node
  previousSibling*: Node
  ownerDocument*: Document
  innerHTML*: cstring
  outerHTML*: cstring
  innerText*: cstring
  textContent*: cstring
  style*: Style
  baseURI*: cstring
  parentElement*: Element
  isConnected*: bool
Source Edit
NodeType = enum
  ElementNode = 1, AttributeNode, TextNode, CDATANode, EntityRefNode,
  EntityNode, ProcessingInstructionNode, CommentNode, DocumentNode,
  DocumentTypeNode, DocumentFragmentNode, NotationNode
Source Edit
OptionElement {.importc.} = ref object of Element
  defaultSelected*: bool
  selected*: bool
  selectedIndex*: int
  text*: cstring
  value*: cstring
Source Edit
Performance {.importc.} = ref object
  memory*: PerformanceMemory
  timing*: PerformanceTiming
Source Edit
PerformanceMemory {.importc.} = ref object
  jsHeapSizeLimit*: float
  totalJSHeapSize*: float
  usedJSHeapSize*: float
Source Edit
PerformanceTiming {.importc.} = ref object
  connectStart*: float
  domComplete*: float
  domContentLoadedEventEnd*: float
  domContentLoadedEventStart*: float
  domInteractive*: float
  domLoading*: float
  domainLookupEnd*: float
  domainLookupStart*: float
  fetchStart*: float
  loadEventEnd*: float
  loadEventStart*: float
  navigationStart*: float
  redirectEnd*: float
  redirectStart*: float
  requestStart*: float
  responseEnd*: float
  responseStart*: float
  secureConnectionStart*: float
  unloadEventEnd*: float
  unloadEventStart*: float
Source Edit
PersonalBar = LocationBar
Source Edit
Plugin {.importc.} = object of RootObj
  description*: cstring
  filename*: cstring
  name*: cstring
Source Edit
Range {.importc.} = ref object
  collapsed*: bool
  commonAncestorContainer*: Node
  endContainer*: Node
  endOffset*: int
  startContainer*: Node
  startOffset*: int
see docs Source Edit
RootNodeOptions = object of RootObj
  composed*: bool
Source Edit
Screen {.importc.} = ref object of RootObj
  availHeight*: int
  availWidth*: int
  colorDepth*: int
  height*: int
  pixelDepth*: int
  width*: int
Source Edit
ScrollBars = LocationBar
Source Edit
ScrollIntoViewOptions = object
  behavior*: cstring
  inline*: cstring
Source Edit
Selection {.importc.} = ref object
  anchorNode*: Node
  anchorOffset*: int
  focusNode*: Node
  focusOffset*: int
  isCollapsed*: bool
  rangeCount*: int
see docs Source Edit
ShadowRoot {.importc.} = ref object of DocumentOrShadowRoot
  delegatesFocus*: bool
  host*: Element
  innerHTML*: cstring
  mode*: cstring
Source Edit
ShadowRootInit = object of RootObj
  mode*: cstring
  delegatesFocus*: bool
Source Edit
SlotOptions = object of RootObj
  flatten*: bool
Source Edit
StatusBar = LocationBar
Source Edit
Storage {.importc.} = ref object
Source Edit
StorageEvent {.importc.} = ref object of Event
  key*: cstring
  newValue*, oldValue*: cstring
  storageArea*: Storage
  url*: cstring
see docs Source Edit
Style {.importc.} = ref object of RootObj
  alignContent*: cstring
  alignItems*: cstring
  alignSelf*: cstring
  all*: cstring
  animation*: cstring
  animationDelay*: cstring
  animationDirection*: cstring
  animationDuration*: cstring
  animationFillMode*: cstring
  animationIterationCount*: cstring
  animationName*: cstring
  animationPlayState*: cstring
  animationTimingFunction*: cstring
  backdropFilter*: cstring
  backfaceVisibility*: cstring
  background*: cstring
  backgroundAttachment*: cstring
  backgroundBlendMode*: cstring
  backgroundClip*: cstring
  backgroundColor*: cstring
  backgroundImage*: cstring
  backgroundOrigin*: cstring
  backgroundPosition*: cstring
  backgroundRepeat*: cstring
  backgroundSize*: cstring
  blockSize*: cstring
  border*: cstring
  borderBlock*: cstring
  borderBlockColor*: cstring
  borderBlockEnd*: cstring
  borderBlockEndColor*: cstring
  borderBlockEndStyle*: cstring
  borderBlockEndWidth*: cstring
  borderBlockStart*: cstring
  borderBlockStartColor*: cstring
  borderBlockStartStyle*: cstring
  borderBlockStartWidth*: cstring
  borderBlockStyle*: cstring
  borderBlockWidth*: cstring
  borderBottom*: cstring
  borderBottomColor*: cstring
  borderBottomLeftRadius*: cstring
  borderBottomRightRadius*: cstring
  borderBottomStyle*: cstring
  borderBottomWidth*: cstring
  borderCollapse*: cstring
  borderColor*: cstring
  borderEndEndRadius*: cstring
  borderEndStartRadius*: cstring
  borderImage*: cstring
  borderImageOutset*: cstring
  borderImageRepeat*: cstring
  borderImageSlice*: cstring
  borderImageSource*: cstring
  borderImageWidth*: cstring
  borderInline*: cstring
  borderInlineColor*: cstring
  borderInlineEnd*: cstring
  borderInlineEndColor*: cstring
  borderInlineEndStyle*: cstring
  borderInlineEndWidth*: cstring
  borderInlineStart*: cstring
  borderInlineStartColor*: cstring
  borderInlineStartStyle*: cstring
  borderInlineStartWidth*: cstring
  borderInlineStyle*: cstring
  borderInlineWidth*: cstring
  borderLeft*: cstring
  borderLeftColor*: cstring
  borderLeftStyle*: cstring
  borderLeftWidth*: cstring
  borderRadius*: cstring
  borderRight*: cstring
  borderRightColor*: cstring
  borderRightStyle*: cstring
  borderRightWidth*: cstring
  borderSpacing*: cstring
  borderStartEndRadius*: cstring
  borderStartStartRadius*: cstring
  borderStyle*: cstring
  borderTop*: cstring
  borderTopColor*: cstring
  borderTopLeftRadius*: cstring
  borderTopRightRadius*: cstring
  borderTopStyle*: cstring
  borderTopWidth*: cstring
  borderWidth*: cstring
  bottom*: cstring
  boxDecorationBreak*: cstring
  boxShadow*: cstring
  boxSizing*: cstring
  breakAfter*: cstring
  breakBefore*: cstring
  breakInside*: cstring
  captionSide*: cstring
  caretColor*: cstring
  clear*: cstring
  clip*: cstring
  clipPath*: cstring
  color*: cstring
  colorAdjust*: cstring
  columnCount*: cstring
  columnFill*: cstring
  columnGap*: cstring
  columnRule*: cstring
  columnRuleColor*: cstring
  columnRuleStyle*: cstring
  columnRuleWidth*: cstring
  columnSpan*: cstring
  columnWidth*: cstring
  columns*: cstring
  contain*: cstring
  content*: cstring
  counterIncrement*: cstring
  counterReset*: cstring
  counterSet*: cstring
  cursor*: cstring
  direction*: cstring
  display*: cstring
  emptyCells*: cstring
  filter*: cstring
  flex*: cstring
  flexBasis*: cstring
  flexDirection*: cstring
  flexFlow*: cstring
  flexGrow*: cstring
  flexShrink*: cstring
  flexWrap*: cstring
  cssFloat*: cstring
  font*: cstring
  fontFamily*: cstring
  fontFeatureSettings*: cstring
  fontKerning*: cstring
  fontLanguageOverride*: cstring
  fontOpticalSizing*: cstring
  fontSize*: cstring
  fontSizeAdjust*: cstring
  fontStretch*: cstring
  fontStyle*: cstring
  fontSynthesis*: cstring
  fontVariant*: cstring
  fontVariantAlternates*: cstring
  fontVariantCaps*: cstring
  fontVariantEastAsian*: cstring
  fontVariantLigatures*: cstring
  fontVariantNumeric*: cstring
  fontVariantPosition*: cstring
  fontVariationSettings*: cstring
  fontWeight*: cstring
  gap*: cstring
  grid*: cstring
  gridArea*: cstring
  gridAutoColumns*: cstring
  gridAutoFlow*: cstring
  gridAutoRows*: cstring
  gridColumn*: cstring
  gridColumnEnd*: cstring
  gridColumnStart*: cstring
  gridRow*: cstring
  gridRowEnd*: cstring
  gridRowStart*: cstring
  gridTemplate*: cstring
  gridTemplateAreas*: cstring
  gridTemplateColumns*: cstring
  gridTemplateRows*: cstring
  hangingPunctuation*: cstring
  height*: cstring
  hyphens*: cstring
  imageOrientation*: cstring
  imageRendering*: cstring
  inlineSize*: cstring
  inset*: cstring
  insetBlock*: cstring
  insetBlockEnd*: cstring
  insetBlockStart*: cstring
  insetInline*: cstring
  insetInlineEnd*: cstring
  insetInlineStart*: cstring
  isolation*: cstring
  justifyContent*: cstring
  justifyItems*: cstring
  justifySelf*: cstring
  left*: cstring
  letterSpacing*: cstring
  lineBreak*: cstring
  lineHeight*: cstring
  listStyle*: cstring
  listStyleImage*: cstring
  listStylePosition*: cstring
  listStyleType*: cstring
  margin*: cstring
  marginBlock*: cstring
  marginBlockEnd*: cstring
  marginBlockStart*: cstring
  marginBottom*: cstring
  marginInline*: cstring
  marginInlineEnd*: cstring
  marginInlineStart*: cstring
  marginLeft*: cstring
  marginRight*: cstring
  marginTop*: cstring
  mask*: cstring
  maskBorder*: cstring
  maskBorderMode*: cstring
  maskBorderOutset*: cstring
  maskBorderRepeat*: cstring
  maskBorderSlice*: cstring
  maskBorderSource*: cstring
  maskBorderWidth*: cstring
  maskClip*: cstring
  maskComposite*: cstring
  maskImage*: cstring
  maskMode*: cstring
  maskOrigin*: cstring
  maskPosition*: cstring
  maskRepeat*: cstring
  maskSize*: cstring
  maskType*: cstring
  maxBlockSize*: cstring
  maxHeight*: cstring
  maxInlineSize*: cstring
  maxWidth*: cstring
  minBlockSize*: cstring
  minHeight*: cstring
  minInlineSize*: cstring
  minWidth*: cstring
  mixBlendMode*: cstring
  objectFit*: cstring
  objectPosition*: cstring
  offset*: cstring
  offsetAnchor*: cstring
  offsetDistance*: cstring
  offsetPath*: cstring
  offsetRotate*: cstring
  opacity*: cstring
  order*: cstring
  orphans*: cstring
  outline*: cstring
  outlineColor*: cstring
  outlineOffset*: cstring
  outlineStyle*: cstring
  outlineWidth*: cstring
  overflow*: cstring
  overflowAnchor*: cstring
  overflowBlock*: cstring
  overflowInline*: cstring
  overflowWrap*: cstring
  overflowX*: cstring
  overflowY*: cstring
  overscrollBehavior*: cstring
  overscrollBehaviorBlock*: cstring
  overscrollBehaviorInline*: cstring
  overscrollBehaviorX*: cstring
  overscrollBehaviorY*: cstring
  padding*: cstring
  paddingBlock*: cstring
  paddingBlockEnd*: cstring
  paddingBlockStart*: cstring
  paddingBottom*: cstring
  paddingInline*: cstring
  paddingInlineEnd*: cstring
  paddingInlineStart*: cstring
  paddingLeft*: cstring
  paddingRight*: cstring
  paddingTop*: cstring
  pageBreakAfter*: cstring
  pageBreakBefore*: cstring
  pageBreakInside*: cstring
  paintOrder*: cstring
  perspective*: cstring
  perspectiveOrigin*: cstring
  placeContent*: cstring
  placeItems*: cstring
  placeSelf*: cstring
  pointerEvents*: cstring
  position*: cstring
  quotes*: cstring
  resize*: cstring
  right*: cstring
  rotate*: cstring
  rowGap*: cstring
  scale*: cstring
  scrollBehavior*: cstring
  scrollMargin*: cstring
  scrollMarginBlock*: cstring
  scrollMarginBlockEnd*: cstring
  scrollMarginBlockStart*: cstring
  scrollMarginBottom*: cstring
  scrollMarginInline*: cstring
  scrollMarginInlineEnd*: cstring
  scrollMarginInlineStart*: cstring
  scrollMarginLeft*: cstring
  scrollMarginRight*: cstring
  scrollMarginTop*: cstring
  scrollPadding*: cstring
  scrollPaddingBlock*: cstring
  scrollPaddingBlockEnd*: cstring
  scrollPaddingBlockStart*: cstring
  scrollPaddingBottom*: cstring
  scrollPaddingInline*: cstring
  scrollPaddingInlineEnd*: cstring
  scrollPaddingInlineStart*: cstring
  scrollPaddingLeft*: cstring
  scrollPaddingRight*: cstring
  scrollPaddingTop*: cstring
  scrollSnapAlign*: cstring
  scrollSnapStop*: cstring
  scrollSnapType*: cstring
  scrollbar3dLightColor*: cstring
  scrollbarArrowColor*: cstring
  scrollbarBaseColor*: cstring
  scrollbarColor*: cstring
  scrollbarDarkshadowColor*: cstring
  scrollbarFaceColor*: cstring
  scrollbarHighlightColor*: cstring
  scrollbarShadowColor*: cstring
  scrollbarTrackColor*: cstring
  scrollbarWidth*: cstring
  shapeImageThreshold*: cstring
  shapeMargin*: cstring
  shapeOutside*: cstring
  tabSize*: cstring
  tableLayout*: cstring
  textAlign*: cstring
  textAlignLast*: cstring
  textCombineUpright*: cstring
  textDecoration*: cstring
  textDecorationColor*: cstring
  textDecorationLine*: cstring
  textDecorationSkipInk*: cstring
  textDecorationStyle*: cstring
  textDecorationThickness*: cstring
  textEmphasis*: cstring
  textEmphasisColor*: cstring
  textEmphasisPosition*: cstring
  textEmphasisStyle*: cstring
  textIndent*: cstring
  textJustify*: cstring
  textOrientation*: cstring
  textOverflow*: cstring
  textRendering*: cstring
  textShadow*: cstring
  textTransform*: cstring
  textUnderlineOffset*: cstring
  textUnderlinePosition*: cstring
  top*: cstring
  touchAction*: cstring
  transform*: cstring
  transformBox*: cstring
  transformOrigin*: cstring
  transformStyle*: cstring
  transition*: cstring
  transitionDelay*: cstring
  transitionDuration*: cstring
  transitionProperty*: cstring
  transitionTimingFunction*: cstring
  translate*: cstring
  unicodeBidi*: cstring
  verticalAlign*: cstring
  visibility*: cstring
  whiteSpace*: cstring
  widows*: cstring
  width*: cstring
  willChange*: cstring
  wordBreak*: cstring
  wordSpacing*: cstring
  writingMode*: cstring
  zIndex*: cstring
Source Edit
TextAreaElement {.importc.} = ref object of Element
  value*: cstring
  selectionStart*, selectionEnd*: int
  selectionDirection*: cstring
  rows*, cols*: int
see docs Source Edit
TimeOut {.importc.} = ref object of RootObj
Source Edit
ToolBar = LocationBar
Source Edit
Touch {.importc.} = ref object of RootObj
  identifier*: int
  screenX*, screenY*, clientX*, clientY*, pageX*, pageY*: int
  target*: Element
  radiusX*, radiusY*: int
  rotationAngle*: int
  force*: float
Source Edit
TouchEvent {.importc.} = ref object of UIEvent
  changedTouches*, targetTouches*, touches*: seq[Touch]
Source Edit
TouchList {.importc.} = ref object of RootObj
  length*: int
Source Edit
UIEvent {.importc.} = ref object of Event
  detail*: int64
  view*: Window
see docs Source Edit
ValidityState {.importc.} = ref object
  badInput*: bool
  customError*: bool
  patternMismatch*: bool
  rangeOverflow*: bool
  rangeUnderflow*: bool
  stepMismatch*: bool
  tooLong*: bool
  tooShort*: bool
  typeMismatch*: bool
  valid*: bool
  valueMissing*: bool
see docs Source Edit
Window {.importc.} = ref object of EventTarget
  document*: Document
  event*: Event
  history*: History
  location*: Location
  closed*: bool
  defaultStatus*: cstring
  devicePixelRatio*: float
  innerHeight*, innerWidth*: int
  locationbar*: ref LocationBar
  menubar*: ref MenuBar
  name*: cstring
  outerHeight*, outerWidth*: int
  pageXOffset*, pageYOffset*: int
  scrollX*: float
  scrollY*: float
  personalbar*: ref PersonalBar
  scrollbars*: ref ScrollBars
  statusbar*: ref StatusBar
  status*: cstring
  toolbar*: ref ToolBar
  frames*: seq[Frame]
  screen*: Screen
  performance*: Performance
  onpopstate*: proc (event: Event)
  localStorage*: Storage
  sessionStorage*: Storage
  parent*: Window
Source Edit

Vars

document {.importc, nodecl.}: Document
Source Edit
screen {.importc, nodecl.}: Screen
Source Edit
window {.importc, nodecl.}: Window
Source Edit

Consts

DomApiVersion = 3
the version of DOM API we try to follow. No guarantees though. Source Edit
fileReaderDone = 2'u
Source Edit
fileReaderEmpty = 0'u
Source Edit
fileReaderLoading = 1'u
Source Edit

Procs

proc `$`(s: Selection): string {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc `[]`(x: Node; idx: int): Element {.importcpp: "#.childNodes[#]",
                                        ...raises: [], tags: [], forbids: [].}
Source Edit
proc abort(f: FileReader) {.importcpp: "#.abort()", ...raises: [], tags: [],
                            forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort Source Edit
proc add(c: ClassList; class: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc addEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event);
                      options: AddEventListenerOptions) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc addEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event);
                      useCapture: bool = false) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc after(self: Node; element: Node): Node {.importjs: "#.$1(@)", varargs,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/after Source Edit
proc alert(w: Window; msg: cstring) {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc append(self: Node; element: Node): Node {.importjs: "#.$1(@)", varargs,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/append Source Edit
proc appendChild(n, child: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc appendData(n: Node; data: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc assignedElements(n: HTMLSlotElement; options: SlotOptions): seq[Element] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc assignedNodes(n: HTMLSlotElement; options: SlotOptions): seq[Node] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc attachShadow(n: Element): ShadowRoot {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc back(h: History) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc back(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc before(self: Node; element: Node): Node {.importjs: "#.$1(@)", varargs,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/before Source Edit
proc blur(e: Element) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc blur(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc cancelAnimationFrame(w: Window; id: int) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc canShare(self: Navigator; data: cstring): bool {.importcpp, ...raises: [],
    tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare Source Edit
proc checked(n: Node): bool {.importcpp: "#.checked", nodecl, ...raises: [],
                              tags: [], forbids: [].}
Source Edit
proc checked=(n: Node; v: bool) {.importcpp: "#.checked = #", nodecl,
                                  ...raises: [], tags: [], forbids: [].}
Source Edit
proc checkValidity(e: FormElement): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc checkValidity(e: InputElement): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc class(n: Node): cstring {.importcpp: "#.className", nodecl, ...raises: [],
                               tags: [], forbids: [].}
Source Edit
proc class=(n: Node; v: cstring) {.importcpp: "#.className = #", nodecl,
                                   ...raises: [], tags: [], forbids: [].}
Source Edit
proc clear(s: Storage) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc clearData(dt: DataTransfer; format: cstring) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc clearInterval(i: Interval) {.importc, nodecl, ...raises: [], tags: [],
                                  forbids: [].}
Source Edit
proc clearInterval(w: Window; interval: Interval) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc clearTimeout(t: TimeOut) {.importc, nodecl, ...raises: [], tags: [],
                                forbids: [].}
Source Edit
proc clearTimeout(w: Window; timeout: TimeOut) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc click(e: Element) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc clientHeight(): int {.importcpp: "(window.innerHeight || document.documentElement.clientHeight)@",
                           nodecl, ...raises: [], tags: [], forbids: [].}
Source Edit
proc clientWidth(): int {.importcpp: "(window.innerWidth || document.documentElement.clientWidth)@",
                          nodecl, ...raises: [], tags: [], forbids: [].}
Source Edit
proc cloneNode(n: Node; copyContent: bool): Node {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc close(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc closest(self: Node; cssSelector: cstring): Node {.importjs: "#.$1(#)",
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest Source Edit
proc compareDocumentPosition(n: Node; otherNode: Node): int {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc confirm(w: Window; msg: cstring): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc contains(c: ClassList; class: cstring): bool {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc contains(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc createAttribute(d: Document; identifier: cstring): Node {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc createComment(d: Document; data: cstring): Node {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc createElement(d: Document; identifier: cstring): Element {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc createElementNS(d: Document; namespaceURI, qualifiedIdentifier: cstring): Element {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc createTextNode(d: Document; identifier: cstring): Node {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc decodeURI(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc decodeURIComponent(uri: cstring): cstring {.importc, nodecl, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc deleteData(n: Node; start, len: int) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc deleteFromDocument(s: Selection) {.importcpp, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc disabled=(n: Node; v: bool) {.importcpp: "#.disabled = #", nodecl,
                                   ...raises: [], tags: [], forbids: [].}
Source Edit
proc disableExternalCapture(w: Window) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc dispatchEvent(et: EventTarget; ev: Event) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc elementFromPoint(n: DocumentOrShadowRoot; x, y: float): Element {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc elementsFromPoint(n: DocumentOrShadowRoot; x, y: float): seq[Element] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc enableExternalCapture(w: Window) {.importcpp, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc encodeURI(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc encodeURIComponent(uri: cstring): cstring {.importc, nodecl, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc error(f: FileReader): DomException {.importcpp: "#.error", nodecl,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/error Source Edit
proc escape(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [],
                                     forbids: [].}
Source Edit
proc find(w: Window; text: cstring; caseSensitive = false; backwards = false): bool {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc focus(e: Element) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc focus(e: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc focus(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc forward(h: History) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc forward(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc getAsFile(dti: DataTransferItem): File {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc getAttribute(n: Node; attr: cstring): cstring {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc getAttributeNode(n: Node; attr: cstring): Node {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc getBoundingClientRect(e: Node): BoundingRect {.
    importcpp: "getBoundingClientRect", nodecl, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc getComputedStyle(w: Window; e: Node; pe: Node = nil): Style {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Warning: The returned Style may or may not be read-only at run-time in the browser. getComputedStyle is performance costly.
Source Edit
proc getData(dt: DataTransfer; format: cstring): cstring {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementById(d: Document; id: cstring): Element {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc getElementById(id: cstring): Element {.importc: "document.getElementById",
    nodecl, ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementsByClass(n: Node; name: cstring): seq[Node] {.
    importcpp: "#.getElementsByClassName(#)", nodecl, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc getElementsByClassName(d: Document; name: cstring): seq[Element] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementsByClassName(e: Element; name: cstring): seq[Element] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementsByName(d: Document; name: cstring): seq[Element] {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementsByTagName(d: Document; name: cstring): seq[Element] {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getElementsByTagName(e: Element; name: cstring): seq[Element] {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getItem(s: Storage; key: cstring): cstring {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc getModifierState(ev: KeyboardEvent; keyArg: cstring): bool {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getModifierState(ev: MouseEvent; keyArg: cstring): bool {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getPropertyPriority(s: Style; property: cstring): cstring {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getPropertyValue(s: Style; property: cstring): cstring {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getRangeAt(s: Selection; index: int): Range {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc getRootNode(n: Node; options: RootNodeOptions): Node {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc getSelection(d: Document): Selection {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc getSelection(n: DocumentOrShadowRoot): Selection {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc go(h: History; pagesToJump: int) {.importcpp, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc handleEvent(d: Document; event: Event) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc handleEvent(e: Element; event: Event) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc handleEvent(w: Window; e: Event) {.importcpp, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc hasAttribute(n: Node; attr: cstring): bool {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc hasAttributeNS(self: Node; namespace, localName: cstring): bool {.
    importjs: "(#.$1(#, #) || false)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttributeNS Source Edit
proc hasChildNodes(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc hasItem(s: Storage; key: cstring): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc hasPointerCapture(self: Node; pointerId: SomeNumber): bool {.
    importjs: "(#.$1(#) || false)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/hasPointerCapture Source Edit
proc home(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc id(n: Node): cstring {.importcpp: "#.id", nodecl, ...raises: [], tags: [],
                            forbids: [].}
Source Edit
proc id=(n: Node; x: cstring) {.importcpp: "#.id = #", nodecl, ...raises: [],
                                tags: [], forbids: [].}
Source Edit
proc identifiedTouch(list: TouchList): Touch {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc insertAdjacentElement(self: Node; position: cstring; element: Node) {.
    importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement Source Edit
proc insertAdjacentHTML(self: Node; position, html: cstring) {.
    importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML Source Edit
proc insertAdjacentText(self: Node; position, data: cstring) {.
    importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentText Source Edit
proc insertBefore(n, newNode, before: Node) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc insertData(n: Node; position: int; data: cstring) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc insertNode(range: Range; node: Node) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc inViewport(el: Node): bool {....raises: [], tags: [], forbids: [].}
Source Edit
proc isDefaultNamespace(n: Node): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc isEqualNode(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc isFinite(x: BiggestFloat): bool {.importc, nodecl, ...raises: [], tags: [],
                                       forbids: [].}
Source Edit
proc isNaN(x: BiggestFloat): bool {.importc, nodecl, ...raises: [], tags: [],
                                    forbids: [].}
see also math.isNaN. Source Edit
proc isSameNode(n: Node): bool {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc item(list: TouchList; i: int): Touch {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc javaEnabled(h: Navigator): bool {.importcpp, ...raises: [], tags: [],
                                       forbids: [].}
Source Edit
proc len(x: Node): int {.importcpp: "#.childNodes.length", ...raises: [], tags: [],
                         forbids: [].}
Source Edit
proc lookupNamespaceURI(n: Node): cstring {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc lookupPrefix(n: Node): cstring {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc matches(self: Node; cssSelector: cstring): bool {.
    importjs: "(#.$1(#) || false)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/matches Source Edit
proc matchMedia(w: Window; mediaQueryString: cstring): MediaQueryList {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc message(ex: DomException): cstring {.importcpp: "#.message", nodecl,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/DOMException/message Source Edit
proc moveBy(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc moveTo(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc name(ex: DomException): cstring {.importcpp: "#.name", nodecl, ...raises: [],
                                       tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/DOMException/name Source Edit
proc newDomException(): DomException {.importcpp: "new DomException()",
                                       constructor, ...raises: [], tags: [],
                                       forbids: [].}
DOM Exception constructor Source Edit
func newDomParser(): DomParser {.importcpp: "new DOMParser()", ...raises: [],
                                 tags: [], forbids: [].}
DOM Parser constructor. Source Edit
proc newEvent(name: cstring): Event {.importcpp: "new Event(@)", constructor,
                                      ...raises: [], tags: [], forbids: [].}
Source Edit
proc newFileReader(): FileReader {.importcpp: "new FileReader()", constructor,
                                   ...raises: [], tags: [], forbids: [].}
File Reader constructor Source Edit
proc normalize(n: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc now(p: Performance): float {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc offsetHeight(e: Node): int {.importcpp: "#.offsetHeight", nodecl,
                                  ...raises: [], tags: [], forbids: [].}
Source Edit
proc offsetLeft(e: Node): int {.importcpp: "#.offsetLeft", nodecl, ...raises: [],
                                tags: [], forbids: [].}
Source Edit
proc offsetTop(e: Node): int {.importcpp: "#.offsetTop", nodecl, ...raises: [],
                               tags: [], forbids: [].}
Source Edit
proc offsetWidth(e: Node): int {.importcpp: "#.offsetWidth", nodecl, ...raises: [],
                                 tags: [], forbids: [].}
Source Edit
proc open(d: Document) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc open(w: Window; uri, windowname: cstring; properties: cstring = nil): Window {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
func parseFromString(this: DomParser; str: cstring; mimeType: cstring): Document {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Parse from string to Document. Source Edit
proc play(e: EmbedElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc preventDefault(ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc prompt(w: Window; text, default: cstring): cstring {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc pushState[T](h: History; stateObject: T; title, url: cstring) {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc querySelector(d: Document; selectors: cstring): Element {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc querySelector(n: Node; selectors: cstring): Element {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc querySelectorAll(d: Document; selectors: cstring): seq[Element] {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc querySelectorAll(n: Node; selectors: cstring): seq[Element] {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc readAsBinaryString(f: FileReader; b: Blob) {.
    importcpp: "#.readAsBinaryString(#)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString Source Edit
proc readAsDataURL(f: FileReader; b: Blob) {.importcpp: "#.readAsDataURL(#)",
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL Source Edit
proc readAsText(f: FileReader; b: Blob | File; encoding = cstring"UTF-8") {.
    importcpp: "#.readAsText(#, #)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText Source Edit
proc readyState(f: FileReader): FileReaderState {.importcpp: "#.readyState",
    nodecl, ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readyState Source Edit
proc registerProtocolHandler(self: Navigator; scheme, url, title: cstring) {.
    importcpp, ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler Source Edit
proc releasePointerCapture(self: Node; pointerId: SomeNumber) {.
    importjs: "#.$1(#)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/releasePointerCapture Source Edit
proc reload(loc: Location) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc remove(c: ClassList; class: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc remove(child: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc removeAllRanges(s: Selection) {.importcpp, ...raises: [], tags: [],
                                     forbids: [].}
Source Edit
proc removeAttribute(n: Node; attr: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc removeAttributeNode(n, attr: Node) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc removeAttributeNS(self: Node; namespace, attributeName: cstring) {.
    importjs: "#.$1(#, #)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttributeNS Source Edit
proc removeChild(n, child: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc removeEventListener(et: EventTarget; ev: cstring; cb: proc (ev: Event)) {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc removeItem(s: Storage; key: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc removeProperty(s: Style; property: cstring) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc replace(loc: Location; s: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc replaceChild(n, newNode, oldNode: Node) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc replaceChildren(self: Node; replacements: Node) {.importjs: "#.$1(@)",
    varargs, ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceChildren Source Edit
proc replaceData(n: Node; start, len: int; text: cstring) {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc replaceWith(self: Node; replacements: Node) {.importjs: "#.$1(@)", varargs,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/replaceWith Source Edit
proc reportValidity(e: FormElement): bool {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc requestAnimationFrame(w: Window; function: proc (time: float)): int {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc requestPointerLock(self: Node) {.importjs: "#.$1()", ...raises: [], tags: [],
                                      forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/requestPointerLock Source Edit
proc reset(f: FormElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc resizeBy(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc resizeTo(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc resultAsString(f: FileReader): cstring {.importcpp: "#.result", nodecl,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/FileReader/result Source Edit
proc routeEvent(d: Document; event: Event) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc routeEvent(w: Window; event: Event) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc scrollBy(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc scrollHeight(e: Node): int {.importcpp: "#.scrollHeight", nodecl,
                                  ...raises: [], tags: [], forbids: [].}
Source Edit
proc scrollIntoView(n: Node) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc scrollIntoView(n: Node; options: ScrollIntoViewOptions) {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc scrollIntoViewIfNeeded(self: Node; centerIfNeeded: bool) {.
    importjs: "#.$1(#)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoViewIfNeeded Source Edit
proc scrollLeft(e: Node): int {.importcpp: "#.scrollLeft", nodecl, ...raises: [],
                                tags: [], forbids: [].}
Source Edit
proc scrollTo(w: Window; x, y: int) {.importcpp, ...raises: [], tags: [],
                                      forbids: [].}
Source Edit
proc scrollTop(e: Node): int {.importcpp: "#.scrollTop", nodecl, ...raises: [],
                               tags: [], forbids: [].}
Source Edit
proc scrollTop=(e: Node; value: int) {.importcpp: "#.scrollTop = #", nodecl,
                                       ...raises: [], tags: [], forbids: [].}
Source Edit
proc scrollWidth(e: Node): int {.importcpp: "#.scrollWidth", nodecl, ...raises: [],
                                 tags: [], forbids: [].}
Source Edit
proc select(e: Element) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc sendBeacon(self: Navigator; url, data: cstring): bool {.importcpp,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon Source Edit
proc setAttr(n: Node; key, val: cstring) {.importcpp: "#.setAttribute(@)",
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setAttribute(n: Node; name, value: cstring) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc setAttributeNode(n: Node; attr: Node) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc setCustomValidity(e: InputElement; error: cstring) {.importcpp, ...raises: [],
    tags: [], forbids: [].}
Source Edit
proc setData(dt: DataTransfer; format: cstring; data: cstring) {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setDragImage(dt: DataTransfer; img: Element; xOffset: int64; yOffset: int64) {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc setHTML(self: Node; html: cstring) {.importjs: "#.$1(#)", ...raises: [],
    tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/setHTML Source Edit
proc setInterval(action: proc (); ms: int): Interval {.importc, nodecl,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setInterval(w: Window; code: cstring; pause: int): Interval {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setInterval(w: Window; function: proc (); pause: int): Interval {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc setItem(s: Storage; key, value: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc setProperty(s: Style; property, value: cstring; priority = "") {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setRangeText(e: InputElement; replacement: cstring; startindex: int = 0;
                  endindex: int = 0; selectionMode: cstring = "preserve") {.
    importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc setSelectionRange(e: InputElement; selectionStart: int; selectionEnd: int;
                       selectionDirection: cstring = "none") {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setTimeout(action: proc (); ms: int): TimeOut {.importc, nodecl,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setTimeout(w: Window; code: cstring; pause: int): TimeOut {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc setTimeout(w: Window; function: proc (); pause: int): Interval {.importcpp,
    ...raises: [], tags: [], forbids: [].}
Source Edit
proc slice(e: Blob; startindex: int = 0; endindex: int = e.size;
           contentType: cstring = "") {.importcpp, ...raises: [], tags: [],
                                        forbids: [].}
Source Edit
proc stop(e: EmbedElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc stop(w: Window) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc stopImmediatePropagation(ev: Event) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc stopPropagation(ev: Event) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc submit(f: FormElement) {.importcpp, ...raises: [], tags: [], forbids: [].}
Source Edit
proc toggle(c: ClassList; class: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc toggleAttribute(self: Node; name: cstring; force = false): bool {.
    importjs: "(#.$1(#, #) || false)", ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute Source Edit
proc unescape(uri: cstring): cstring {.importc, nodecl, ...raises: [], tags: [],
                                       forbids: [].}
Source Edit
proc value(n: Node): cstring {.importcpp: "#.value", nodecl, ...raises: [],
                               tags: [], forbids: [].}
Source Edit
proc value=(n: Node; v: cstring) {.importcpp: "#.value = #", nodecl, ...raises: [],
                                   tags: [], forbids: [].}
Source Edit
proc vibrate(self: Navigator; pattern: cint): bool {.importcpp, ...raises: [],
    tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate Source Edit
proc vibrate(self: Navigator; pattern: openArray[cint]): bool {.importcpp,
    ...raises: [], tags: [], forbids: [].}
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate Source Edit
proc write(d: Document; text: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc writeln(d: Document; text: cstring) {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit

Converters

converter toString(s: Selection): cstring {.importcpp, ...raises: [], tags: [],
    forbids: [].}
Source Edit

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/dom.html