std/dom

Search:
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)

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  
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  
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  
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  
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