Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Modern DOM functionalities for every browser
JavaScript HTML Makefile


build status

Via cdnJS

Many thanks to cdnjs for hosting this script. Following an example on how to include it.

>/* DOM4 */</script>


This is a fully tested and covered polyfill for both new DOM Level 4 parentNode entries:

  • Element#prepend()
  • Element#append()

And for new DOM Level 4 childNode entries:

  • Element#before()
  • Element#after()
  • Element#replaceWith() ( warning Element#replace() has been recently deprecated )
  • Element#remove()

The implemented test is conform to current specifications.

Other fixes/standardized behaviors include:

  • new Elements as Array subclass, so that el.query is the relative equivalent of el.querySelector and el.queryAll is the relative equivalent of Relative means node.query('body p') won't return any p element contained in node, while old querySelector would.
  • classList, with forced fixes for iOS 5.1 and Nokia ASHA Xpress Browser and early implementations
  • CustomEvent constructor for all browsers down to IE8
  • Element#matches utility to test elements against CSS selectors
  • Element#closest utility to find element inclusive ancestor via CSS selectors

The DOM4 license is Mit Style.

If you need other polyfills too have a look at another DOM-shim repo.


Theoretically compatible with all browsers you know that are truly used these days, here a list:

  • Android 2.1+
  • Safari Mobile since iOS 3.0 and Desktop
  • Opera Mobile, Mini, and Desktop
  • Blackberry 7.1 and higher
  • Samsung Bada 2 native Browser
  • Midori and most likely all other WebKit based
  • Chrome Mobile and Desktop
  • Firefox Mobile and Desktop
  • IE8+ for Desktop and IE Mobile 9 or greater.
  • Nokia Xpress Browser for ASHA Platform
  • Silk Browser - Fire OS 3.0
  • PhantomJS can benefit from DOM4 too

It's way easier if you tell me which browser in a current relevant market share is not supported :-)

For IE8 only it's recommended to include ie8 script before dom4 or CustomEvent, addEventListener, and dispatchEvent won't work as expected.

Which File

The minified version is here, while the max one here. If you want to test directly try this page, it should be green.

Something went wrong with that request. Please try again.