function dumpModernizr(){ var str = ''; dumpModernizr.old = dumpModernizr.old || {}; for (var prop in Modernizr) { // skip previously done ones. if (dumpModernizr.old[prop]) continue; else dumpModernizr.old[prop] = true; if (typeof Modernizr[prop] === 'function') continue; // skip unit test items if (/^test/.test(prop)) continue; if (~TEST.inputs.indexOf(prop)) { str += '
  • '+prop+'{}
  • '; } else { str += '
  • ' + prop + ': ' + Modernizr[prop] + '
  • '; } } return str; } function grabFeatDetects(){ // thx github.js $.getScript('https://api.github.com/repos/Modernizr/Modernizr/git/trees/master?recursive=1&callback=processTree'); } function processTree(data){ var filenames = []; for (var i = 0; i < data.data.tree.length; i++){ var file = data.data.tree[i]; var match = file.path.match(/^feature-detects\/(.*)/); if (!match) continue; var relpath = location.host == "modernizr.github.com" ? '../modernizr-git/' : '../'; filenames.push(relpath + match[0]); } var jqxhrs = filenames.map(function(filename){ return jQuery.getScript(filename); }); jQuery.when.apply(jQuery, jqxhrs).done(resultsToDOM); } function resultsToDOM(){ var modOutput = document.createElement('div'), ref = document.getElementById('qunit-testresult') || document.getElementById('qunit-tests'); modOutput.className = 'output'; modOutput.innerHTML = dumpModernizr(); ref.parentNode.insertBefore(modOutput, ref); // Modernizr object as text document.getElementsByTagName('textarea')[0].innerHTML = JSON.stringify(Modernizr); } /* uno */ resultsToDOM(); /* dos */ grabFeatDetects(); /* tres */ setTimeout(resultsToDOM, 5e3); /* quatro */ setTimeout(resultsToDOM, 15e3);