Merge pull request #81 from duzun/patch-2

Keep global scope clean with AMD. Always check for jQuery global.
This commit is contained in:
Faisal Salman 2014-11-20 17:40:52 +07:00
commit 4d3656bb9c

View File

@ -739,30 +739,37 @@
} }
exports.UAParser = UAParser; exports.UAParser = UAParser;
} else { } else {
// browser env // requirejs env
window.UAParser = UAParser;
// requirejs env (optional)
if (typeof(define) === FUNC_TYPE && define.amd) { if (typeof(define) === FUNC_TYPE && define.amd) {
define(function () { define(function () {
return UAParser; return UAParser;
}); });
} }
// jQuery/Zepto specific (optional) else {
var $ = window.jQuery || window.Zepto; // browser env
if (typeof($) !== UNDEF_TYPE) { window.UAParser = UAParser;
var parser = new UAParser();
$.ua = parser.getResult();
$.ua.get = function() {
return parser.getUA();
};
$.ua.set = function (uastring) {
parser.setUA(uastring);
var result = parser.getResult();
for (var prop in result) {
$.ua[prop] = result[prop];
}
};
} }
} }
// jQuery/Zepto specific (optional)
// Note:
// In AMD env the global scope should be kept clean, but jQuery is an exception.
// jQuery always exports to global scope, unless jQuery.noConflict(true) is used,
// and we should catch that.
var $ = window.jQuery || window.Zepto;
if (typeof($) !== UNDEF_TYPE) {
var parser = new UAParser();
$.ua = parser.getResult();
$.ua.get = function() {
return parser.getUA();
};
$.ua.set = function (uastring) {
parser.setUA(uastring);
var result = parser.getResult();
for (var prop in result) {
$.ua[prop] = result[prop];
}
};
}
})(this); })(this);