diff options
-rw-r--r-- | src/html/dom.nim | 6 | ||||
-rw-r--r-- | src/server/buffer.nim | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/html/dom.nim b/src/html/dom.nim index a5aec266..941d3ce7 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -87,6 +87,11 @@ type of RESULT_IMPORT_MAP_PARSE: discard #TODO +type DocumentReadyState* = enum + READY_STATE_LOADING = "loading" + READY_STATE_INTERACTIVE = "interactive" + READY_STATE_COMPLETE = "complete" + type Location = ref object window: Window @@ -176,6 +181,7 @@ type isxml*: bool implementation {.jsget.}: DOMImplementation origin: Origin + readyState* {.jsget.}: DocumentReadyState scriptsToExecSoon*: seq[HTMLScriptElement] scriptsToExecInOrder*: Deque[HTMLScriptElement] diff --git a/src/server/buffer.nim b/src/server/buffer.nim index fa134d8f..82774fe7 100644 --- a/src/server/buffer.nim +++ b/src/server/buffer.nim @@ -1069,9 +1069,10 @@ proc finishLoad(buffer: Buffer): EmptyPromise = if buffer.window == nil: buffer.window = newWindow(buffer.config.scripting, buffer.selector, buffer.attrs) - let doc = parseHTML(buffer.sstream, charsets = buffer.charsets, + let document = parseHTML(buffer.sstream, charsets = buffer.charsets, window = buffer.window, url = buffer.url) - buffer.document = doc + buffer.document = document + document.readyState = READY_STATE_INTERACTIVE buffer.state = LOADING_RESOURCES buffer.dispatchDOMContentLoadedEvent() p = buffer.loadResources() @@ -1136,6 +1137,7 @@ proc onload(buffer: Buffer) = res.atend = true buffer.finishLoad().then(proc() = buffer.state = LOADED + buffer.document.readyState = READY_STATE_COMPLETE buffer.dispatchLoadEvent() buffer.resolveTask(LOAD, res)) return |