Skip to content

Enables support for the DOMTokenList interface in IE8-9, and fixes buggy implementations in newer browsers.

License

Notifications You must be signed in to change notification settings

Alhadis/DOMTokenList

Repository files navigation

DOMTokenList Polyfill

Enables support for the DOMTokenList interface in IE8-9, and fixes buggy implementations in newer browsers.

bower install domtokenlist
npm install domtokenlist
component install Alhadis/DOMTokenList

What this does:

  • Adds seamless, dynamically-updating support for token-lists in IE8-9
  • Fixes inability to add/remove multiple tokens in IE10+ (#920755)
  • Adds support for forced toggling if it's missing (#878564)

This polyfill works at feature-level, meaning it doesn't identify shortcomings based on browser vendor or version (though I'm hoping that's common sense to most developers these days).

Total size

  • 2.27 KBs minified
  • 1.21 KBs minified & gzipped

SVG support

Include svg-fix.js before the main polyfill if you're working with SVG elements. For modularity's sake, I've isolated all SVG-specific fixes to their own file.

Why should I use yours? Others work fine.

They might, but so far, every one I've encountered has issues working with both the classList and className attributes simultaneously.

For example, assume the following scenario:

<!DOCTYPE html>
<html class="bar">

<script>
	var root = document.documentElement;
	var rootClasses = root.classList;

	console.log(rootClasses[0]); // Outputs "bar", as expected

	root.className = "foo " + root.className;

	console.log(rootClasses[0]); // Outputs "bar" instead of "foo"
</script>

This is an edge case, but expecting developers to avoid the .className attribute as well as direct references to token-lists (which might be done for brevity's sake) wasn't enough to satisfy me. I wanted a true, transparent, lightweight and dynamic polyfill for the interface I loved so much.

About

Enables support for the DOMTokenList interface in IE8-9, and fixes buggy implementations in newer browsers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published