Implementation of the HTML5 Microdata specification for all browsers (including IE8, IE7, IE6 with es5 and DOM shims)
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
__COMPILED
__SRC
examples
tests/Microdata_tests_files
.gitignore
README.md

README.md

Implementation of the HTML5 Microdata specification

Example

var img = document.createElement("img");
img.itemProp = "test";
img.src = "http://example.org/example.jpg";
img.itemValue == img.src;//True

var div = document.createElement("div");
div.appendChild(p);
div.itemScope = true;
div.innerHTML = "<div><span><p itemprop=test>some test</p></span></div>";
div.properties["test"][0].itemValue;//"some test"

More examples in example folder

Microdata JS API

  • Element.itemValue
  • Element.itemProp
  • Element.itemScope
  • Element.itemId
  • Element.itemType
  • Element.itemRef
  • Element.properties
  • window.microdata_liveProperties = true - for auto update Element.properties value false (default) - for cached Element.properties value

Install

<script src="a.js"></script>
  1. When add microdata script
<script src="microdata-js.js"></script>
  • For IE8+ support:
    1. Add ES5 and DOM shim and microdata script as:
<!--[if IE 8]>
<script src="a.ie8.js"></script>
<![endif]-->
<script src="a.js"></script>
<script src="microdata-js.js"></script>

EXTRAs

TODO::

Features

  • Live "properties" property (turn it on manualy window.microdata_liveProperties = true)
  • Implementation of PropertyNodeList and HTMLPropertiesCollection prototypes
  • Extending DocumentFragment.prototype with getItems function
  • Extending PropertyNodeList and HTMLPropertiesCollection prototypes with toJSON functions
  • Inherit native PropertyNodeList and HTMLPropertiesCollection prototypes from Array

Browsers support

  • Opera < 12, Google Chrome, Safary, FireFox, IE8 and maybe others

Tests

tests/Microdata_tests_files/Microdata_tests.html based on Opera microdata tests

LIMITATION

  1. Require window.DOMStringCollection (DOMSettableTokenList like object) (created by https://github.com/termi/ES5-DOM-SHIM/)
  2. Opera >= 11.60:
    • PropertyNodeList.values, PropertyNodeList.toJSON and HTMLPropertiesCollection.toJSON propertys will be available only after window.onload event

TODO

  1. Live HTMLElement.prototype without window.microdata_liveProperties option
  2. Delete code adding "values" property if it not compliance with FINALE Microdata specification
  3. FireFox bug $0.itemId = "" -> $0.itemId != ""

License

MIT