* Remove unneeded `type="text/css"`.

* Wrap all scripts in a closure to avoid polluting the global namespace as much as possible.
* Use optimized asynchronous Google Analytics snippet (http://mathiasbynens.be/notes/async-analytics-snippet) instead of the ancient `document.write`-based one.
This commit is contained in:
Mathias Bynens 2011-02-28 02:45:16 -08:00
parent a534f8bf27
commit e259920065
1 changed files with 59 additions and 57 deletions

View File

@ -41,7 +41,7 @@ function spans($list) {
<meta charset=utf-8 />
<meta name="viewport" content="width=620" />
<title>HTML5 Demos and Examples</title>
<link rel="stylesheet" href="/css/html5demos.css" type="text/css" />
<link rel="stylesheet" href="/css/html5demos.css" />
<script src="js/h5utils.js"></script>
<script src="js/modernizr.custom.js"></script>
</head>
@ -89,63 +89,65 @@ function spans($list) {
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
var tags = [];
$(document).delegate('span.tag', 'click', function () {
var $tag = $(this), tag = $tag.text(), type = $tag.closest('td').attr('class') || 'tags';
(function() {
var tags = [];
$(document).delegate('span.tag', 'click', function () {
var $tag = $(this), tag = $tag.text(), type = $tag.closest('td').attr('class') || 'tags';
if ($tag.is('.selected')) {
$('.' + type + ' span:contains(' + tag + ')').removeClass('selected');
} else {
$('.' + type + ' span:contains(' + tag + ')').addClass('selected');
}
// it's an AND filter
var $trs = $('.' + type + ':has(span.selected)').closest('tr');
if ($trs.length) {
$('tbody tr').hide();
$trs.show();
} else {
$('tbody tr').show();
}
});
var html = [];
$('.tags span.tag').each(function () {
var $tag = $(this), tag = $tag.text();
if (!tags[tag]) {
tags[tag] = true;
html.push('<span class="tag">' + tag + '</span> ');
}
});
$('#tags').append('<strong>Filter demos:</strong> ' + html.sort().join(''));
$.getJSON('demos.json', function (data) {
var i = data.length, $test;
while (i--) {
if (data[i].test && (new Function('return ' + data[i].test))()) {
$('#test-' + data[i].url).addClass('supported').attr('title', 'your browser is supported');
} else if (data[i].test) {
$('#test-' + data[i].url).addClass('not-supported').attr('title', 'your browser is NOT supported');
if ($tag.is('.selected')) {
$('.' + type + ' span:contains(' + tag + ')').removeClass('selected');
} else {
$('.' + type + ' span:contains(' + tag + ')').addClass('selected');
}
}
});
// it's an AND filter
var $trs = $('.' + type + ':has(span.selected)').closest('tr');
if ($trs.length) {
$('tbody tr').hide();
$trs.show();
} else {
$('tbody tr').show();
}
});
var html = [];
$('.tags span.tag').each(function () {
var $tag = $(this), tag = $tag.text();
if (!tags[tag]) {
tags[tag] = true;
html.push('<span class="tag">' + tag + '</span> ');
}
});
$('#tags').append('<strong>Filter demos:</strong> ' + html.sort().join(''));
$.getJSON('demos.json', function (data) {
var i = data.length, $test;
while (i--) {
if (data[i].test && (new Function('return ' + data[i].test))()) {
$('#test-' + data[i].url).addClass('supported').attr('title', 'your browser is supported');
} else if (data[i].test) {
$('#test-' + data[i].url).addClass('not-supported').attr('title', 'your browser is NOT supported');
}
}
});
// $('tr td.demo').click(function () {
// window.location = $(this).find('a').attr('href');
// });
}());
</script>
<a href="http://github.com/remy/html5demos"><img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_darkblue_121621.png" alt="Fork me on GitHub" /></a>
<script>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
var _gaq = [['_setAccount', 'UA-1656750-18'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t), s = d.getElementsByTagName(t)[0];
g.async = 1;
g.src = '//www.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
<script>
try {
var pageTracker = _gat._getTracker("UA-1656750-18");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>