mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-01-15 15:31:08 +00:00
128 lines
2.7 KiB
JavaScript
128 lines
2.7 KiB
JavaScript
import * as window from './window'
|
|
import HTMLElement from './HTMLElement'
|
|
import HTMLVideoElement from './HTMLVideoElement'
|
|
import Image from './Image'
|
|
import Audio from './Audio'
|
|
import Canvas from './Canvas'
|
|
import './EventIniter/index.js'
|
|
|
|
const events = {}
|
|
|
|
const document = {
|
|
readyState: 'complete',
|
|
visibilityState: 'visible',
|
|
documentElement: window,
|
|
hidden: false,
|
|
style: {},
|
|
location: window.location,
|
|
ontouchstart: null,
|
|
ontouchmove: null,
|
|
ontouchend: null,
|
|
|
|
head: new HTMLElement('head'),
|
|
body: new HTMLElement('body'),
|
|
|
|
createElement(tagName) {
|
|
if (tagName === 'canvas') {
|
|
return new Canvas()
|
|
} else if (tagName === 'audio') {
|
|
return new Audio()
|
|
} else if (tagName === 'img') {
|
|
return new Image()
|
|
}else if (tagName === 'video') {
|
|
return new HTMLVideoElement()
|
|
}
|
|
|
|
return new HTMLElement(tagName)
|
|
},
|
|
|
|
createElementNS(nameSpace, tagName) {
|
|
return this.createElement(tagName);
|
|
},
|
|
|
|
getElementById(id) {
|
|
if (id === window.canvas.id) {
|
|
return window.canvas
|
|
}
|
|
return null
|
|
},
|
|
|
|
getElementsByTagName(tagName) {
|
|
if (tagName === 'head') {
|
|
return [document.head]
|
|
} else if (tagName === 'body') {
|
|
return [document.body]
|
|
} else if (tagName === 'canvas') {
|
|
return [window.canvas]
|
|
}
|
|
return []
|
|
},
|
|
|
|
getElementsByName(tagName) {
|
|
if (tagName === 'head') {
|
|
return [document.head]
|
|
} else if (tagName === 'body') {
|
|
return [document.body]
|
|
} else if (tagName === 'canvas') {
|
|
return [window.canvas]
|
|
}
|
|
return []
|
|
},
|
|
|
|
querySelector(query) {
|
|
if (query === 'head') {
|
|
return document.head
|
|
} else if (query === 'body') {
|
|
return document.body
|
|
} else if (query === 'canvas') {
|
|
return window.canvas
|
|
} else if (query === `#${window.canvas.id}`) {
|
|
return window.canvas
|
|
}
|
|
return null
|
|
},
|
|
|
|
querySelectorAll(query) {
|
|
if (query === 'head') {
|
|
return [document.head]
|
|
} else if (query === 'body') {
|
|
return [document.body]
|
|
} else if (query === 'canvas') {
|
|
return [window.canvas]
|
|
}
|
|
return []
|
|
},
|
|
|
|
addEventListener(type, listener) {
|
|
if (!events[type]) {
|
|
events[type] = []
|
|
}
|
|
events[type].push(listener)
|
|
},
|
|
|
|
removeEventListener(type, listener) {
|
|
const listeners = events[type]
|
|
|
|
if (listeners && listeners.length > 0) {
|
|
for (let i = listeners.length; i--; i > 0) {
|
|
if (listeners[i] === listener) {
|
|
listeners.splice(i, 1)
|
|
break
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
dispatchEvent(event) {
|
|
const listeners = events[event.type]
|
|
|
|
if (listeners) {
|
|
for (let i = 0; i < listeners.length; i++) {
|
|
listeners[i](event)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
export default document
|