feat($sniffer): basic implementation of browser feature testing

This only extracts our 'hashchange' event and html5 history api detection from
$browser.

Closes #400
This commit is contained in:
Vojta Jina
2011-06-23 20:01:25 +02:00
parent cbedf55641
commit d0f459c56f
9 changed files with 71 additions and 4 deletions

24
src/service/sniffer.js Normal file
View File

@@ -0,0 +1,24 @@
'use strict';
/**
* @workInProgress
* @ngdoc service
* @name angular.service.$sniffer
* @requires $window
*
* @property {boolean} history Does the browser support html5 history api ?
* @property {boolean} hashchange Does the browser support hashchange event ?
*
* @description
* This is very simple implementation of testing browser's features.
*/
angularServiceInject('$sniffer', function($window) {
if ($window.Modernizr) return $window.Modernizr;
return {
history: !!($window.history && $window.history.pushState),
hashchange: 'onhashchange' in $window &&
// IE8 compatible mode lies
(!$window.document.documentMode || $window.document.documentMode > 7)
};
}, ['$window']);