gistfile1.txt // 判断是否是浏览器环境,node 环境没有 window 对象。浏览器环境返回 true,否则返回 falsevar inBrowser = typeof window !== 'undefined'; var supportsPushState = inBrowser (function () { // 获取浏览
// 判断是否是浏览器环境,node 环境没有 window 对象。浏览器环境返回 true,否则返回 false
var inBrowser = typeof window !== 'undefined';
var supportsPushState = inBrowser && (function () {
// 获取浏览器信息:'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'
var ua = window.navigator.userAgent;
// 判断浏览器是 pc 端还是手机端,这里过滤掉手机端
if (
(ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&
ua.indexOf('Mobile Safari') !== -1 &&
ua.indexOf('Chrome') === -1 &&
ua.indexOf('Windows Phone') === -1
) {
return false
}
return window.history && 'pushState' in window.history
})();
/**
关键判断就下面一句代码:pushState 是 BrowerHistory 中新增的 API,它存在就说明能用
'pushState' in window.history
*/
