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 */