2015年3月22日 星期日

[JavaScript]檢查瀏覽器版本

以前在判斷瀏覽器版上會用到userAgent來判斷內容文字為何已作為瀏覽器的版本判斷
但是到了IE11版本後開始,卻會經常使之前的判斷程式失效
原因就是IE11開始對於userAgent開始做了一些偽裝?修改

使用以下的javascript來測試瀏覽器

<script type="text/javascript">
    document.write(navigator.userAgent);
</script>

IE11回傳的值為(測試環境為x64的OS)

Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.3; rv:11.0) like Gecko


判斷IE的版本是32 bit或是64 bit:
各個版本回傳的UserAgent:
在x64的OS下:
32位元的IE:有WOW64;
64位元的IE:有x64;

在32bits的OS下:
只會有32bits的IE,不會有WOW64;或x64;

所以UserAgent中帶有x64就一定是x64的IE,沒有x64就是32bits的IE
WOW64就一定是x64的OS
沒有WOW64和x64就一定是32bits的OS

另外此問題在MSDN的官方部落格上有篇這樣的資料在講述此問題
http://blogs.msdn.com/b/ie/archive/2014/07/31/the-mobile-web-should-just-work-for-everyone.aspx


沒有留言:

張貼留言