1.0.0 • Published 8 years ago

domtokenlist v1.0.0

Weekly downloads
87
License
ISC
Repository
github
Last release
8 years ago

DOMTokenList Polyfill

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

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.