diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/min-document/document.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/min-document/document.js')
| -rw-r--r-- | node_modules/min-document/document.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/node_modules/min-document/document.js b/node_modules/min-document/document.js new file mode 100644 index 00000000..d929cbd5 --- /dev/null +++ b/node_modules/min-document/document.js @@ -0,0 +1,72 @@ +var domWalk = require("dom-walk") + +var Comment = require("./dom-comment.js") +var DOMText = require("./dom-text.js") +var DOMElement = require("./dom-element.js") +var DocumentFragment = require("./dom-fragment.js") +var Event = require("./event.js") +var dispatchEvent = require("./event/dispatch-event.js") +var addEventListener = require("./event/add-event-listener.js") +var removeEventListener = require("./event/remove-event-listener.js") + +module.exports = Document; + +function Document() { + if (!(this instanceof Document)) { + return new Document(); + } + + this.head = this.createElement("head") + this.body = this.createElement("body") + this.documentElement = this.createElement("html") + this.documentElement.appendChild(this.head) + this.documentElement.appendChild(this.body) + this.childNodes = [this.documentElement] + this.nodeType = 9 +} + +var proto = Document.prototype; +proto.createTextNode = function createTextNode(value) { + return new DOMText(value, this) +} + +proto.createElementNS = function createElementNS(namespace, tagName) { + var ns = namespace === null ? null : String(namespace) + return new DOMElement(tagName, this, ns) +} + +proto.createElement = function createElement(tagName) { + return new DOMElement(tagName, this) +} + +proto.createDocumentFragment = function createDocumentFragment() { + return new DocumentFragment(this) +} + +proto.createEvent = function createEvent(family) { + return new Event(family) +} + +proto.createComment = function createComment(data) { + return new Comment(data, this) +} + +proto.getElementById = function getElementById(id) { + id = String(id) + + var result = domWalk(this.childNodes, function (node) { + if (String(node.id) === id) { + return node + } + }) + + return result || null +} + +proto.getElementsByClassName = DOMElement.prototype.getElementsByClassName +proto.getElementsByTagName = DOMElement.prototype.getElementsByTagName +proto.contains = DOMElement.prototype.contains + +proto.removeEventListener = removeEventListener +proto.addEventListener = addEventListener +proto.dispatchEvent = dispatchEvent |
