Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
1 u F) ]" ~' U5 V0 L* Z/ T
/ x, F. v3 ?: }* h5 M通过何种方式检测?比较简单到方式是直接判断全局对象中是否包含WebSocket对象即可: - $(document).ready(function() {
' O& y! o: l. E; e/ ^" V1 n+ }" o" N - if( typeof(WebSocket) != "function" ) {7 O; h3 b( U+ y5 s7 h: F+ C
- $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");! [: p% l0 N* z% y: F+ ~5 T
- }4 a( O4 ?1 B6 }+ w% D( V
- })0 Y' [: G4 y4 U5 d# x
复制代码
+ J# l i8 l/ E2 q7 @& t4 [+ |4 d' o: ?但是这种方法存在局限性。 在 Android 中,即使浏览器不支持 WebSocket ,但是它还是存在这个属性。
所以比较严谨的方式是: - if (typeof WebSocket != 'undefined') {
6 l! Z% Z+ M2 J+ O - /*supported*/
7 Z. R( ?+ h1 I- U5 ~9 I& } - }+ g% w6 Y, g; ^; `9 k- V/ h6 q
2 i( B. b# `& D C2 @2 D- //or
/ H9 w. l' L4 c2 \2 p) b& C( ` - if (!!window.WebSocket && window.WebSocket.prototype.send) {
2 a4 ~4 V, D4 ^) G. O# W0 c - /*supported*/
; _. [" [" ~; t. M* S+ v1 e5 l - }
复制代码
% \, e A$ Z& [3 a8 J; |; @ |