summary refs log tree commit diff stats
path: root/lib/js
diff options
context:
space:
mode:
authorJuan Carlos <juancarlospaco@gmail.com>2020-04-13 10:07:52 -0300
committerGitHub <noreply@github.com>2020-04-13 14:07:52 +0100
commit0a84219b3ec3b2deccc141bed4aee0252bc12ca7 (patch)
tree92f4249fd70804aa9071bdeedf2445b5462ce277 /lib/js
parent255698deee403ae80b26baa567043a07dc3c7404 (diff)
downloadNim-0a84219b3ec3b2deccc141bed4aee0252bc12ca7.tar.gz
Add jsdomparser (#13920)
* Add jsdomparser

* Add jsdomparser

* Add jsdomparser

* https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142

* https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142

* https://github.com/nim-lang/Nim/pull/13920#issuecomment-610727142

* https://github.com/nim-lang/Nim/pull/13920#discussion_r405932909

* https://github.com/nim-lang/Nim/pull/13920#discussion_r406502592
Diffstat (limited to 'lib/js')
-rw-r--r--lib/js/dom.nim19
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/js/dom.nim b/lib/js/dom.nim
index 92cc038c9..280e47d82 100644
--- a/lib/js/dom.nim
+++ b/lib/js/dom.nim
@@ -9,7 +9,7 @@
 
 ## Declaration of the Document Object Model for the `JavaScript backend
 ## <backends.html#backends-the-javascript-target>`_.
-
+include "system/inclrtl"
 when not defined(js) and not defined(Nimdoc):
   {.error: "This module only works on the JavaScript platform".}
 
@@ -985,6 +985,16 @@ type
     once*: bool
     passive*: bool
 
+since (1, 3):
+  type DomParser* = ref object  ## \
+    ## DOM Parser object (defined on browser only, may not be on NodeJS).
+    ## * https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
+    ##
+    ## .. code-block:: nim
+    ##   let prsr = newDomParser()
+    ##   discard prsr.parseFromString("<html><marquee>Hello World</marquee></html>".cstring, "text/html".cstring)
+
+
 proc id*(n: Node): cstring {.importcpp: "#.id", nodecl.}
 proc `id=`*(n: Node; x: cstring) {.importcpp: "#.id = #", nodecl.}
 proc class*(n: Node): cstring {.importcpp: "#.className", nodecl.}
@@ -1297,3 +1307,10 @@ proc offsetHeight*(e: Node): int {.importcpp: "#.offsetHeight", nodecl.}
 proc offsetWidth*(e: Node): int {.importcpp: "#.offsetWidth", nodecl.}
 proc offsetTop*(e: Node): int {.importcpp: "#.offsetTop", nodecl.}
 proc offsetLeft*(e: Node): int {.importcpp: "#.offsetLeft", nodecl.}
+
+since (1, 3):
+  func newDomParser*(): DOMParser {.importcpp: "(new DOMParser()​​)".}
+    ## DOM Parser constructor.
+
+  func parseFromString*(this: DOMParser; str: cstring; mimeType: cstring): Document {.importcpp.}
+    ## Parse from string to `Document`.