Mock-DOM-Resources icon indicating copy to clipboard operation
Mock-DOM-Resources copied to clipboard

should we add a `markup` option?

Open getify opened this issue 8 years ago • 4 comments

Should we add an option that pre-configures the DOM (maybe just the head?) with elements as if they had been parsed from the markup?

Notably, some elements like <script async> behave differently if parsed in markup as opposed to being added via API calls in code. This option would allow you to mock out what the initial state of that part of the DOM was and have it behave as markup instead of API calls. It would go ahead and "request" any resource URLs from <script>, <link> or <img> elements.

This would then maybe become the preferred way to emulate markup <link rel=preload> elements over what's currently required: to artificially create those with DOM API calls. The timing would of course still be controlled by resources entries.

getify avatar Apr 07 '17 12:04 getify

One element that would definitely need to be "parsed" from such an option: <base>. It would of course have to change the document.baseURI setting. Perhaps this would mean we should then remove that baseURI option, so there's no confusion if those two are allowed mismatch.

getify avatar Apr 07 '17 12:04 getify

Also: a challenge here is that any resource requests, except <script async>, that are encountered during the "initial DOM parsing" actually delay the DOMContentLoaded event.

Moreover, if the DOM hasn't yet fired the DOMContentLoaded event, any <script defer> elements need to have their execution set to be no earlier than its firing.

getify avatar Apr 12 '17 21:04 getify

https://jakearchibald.com/2017/es-modules-in-browsers/

getify avatar May 03 '17 11:05 getify

We can parse the markup with https://github.com/jsdom/jsdom

getify avatar Apr 13 '20 18:04 getify