@
fengleidongxi #15,UserAgent 在 javascript 上下文中与你发起 http 请求时在 Http Headers 中是不同的。前者可以通过我提供的代码来修改,那么在那个 Context 中获取到的就是被修改后的值,但是该修改并不会影响 Http Request 中的 UserAgent,这个值是由浏览器填充的,可以通过一些浏览器插件修改。而大多数浏览器自带的模拟,会同时修改 javascript 与 Http Request 中的 Useragent。
@
nciyuan #20 Flash 其实现在误伤算是比较大了,因为虽然 Chrome/Firefox 都还没完全放弃 Flash,但是默认都是禁用的。需要用户侧手动允许。在用户没有手动允许的情况,环境都没有 Flash 是一样的。
@
iwtbauh #22 嗯,这个有意思。因为我发现 Chrome 的模拟模式,会自动填充这些触屏事件。所以我自己写了一个 User Script,是这样做的:
document.documentElement.ontouchstart =
document.documentElement.ontouchmove =
document.documentElement.ontouchend =
document.documentElement.ontouchcancel = function () { };
---
其实原则上要检查是否移动端方法是挺多的,上面各位大佬提到的 platform/flash/touch event/屏幕分辨率等等,综合判断下来应该还是比较准确的。