您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10866|回复: 0
打印 上一主题 下一主题

[js学习资料] 判断浏览器是否支持Websocket

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
- ~+ G1 L3 M0 Q, k * J& `& H! @0 e, f* G" T
通过何种方式检测?

比较简单到方式是直接判断全局对象中是否包含WebSocket对象即可:

  1. $(document).ready(function() {! Z) D( A  ]' r: ~% G
  2.   if( typeof(WebSocket) != "function" ) {0 e' I0 u- d4 N: }9 W- X0 x- m( d6 v4 A
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");, X# i* m* S- S+ z" [( `2 J5 v3 ]
  4.   }: p+ E5 I- T) B* e2 x  k
  5. })
      E4 t# @& V( l" u  _5 r
复制代码
7 O, t' u6 w( F

但是这种方法存在局限性。

在 Android 中,即使浏览器不支持 WebSocket ,但是它还是存在这个属性。

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {
    " l# n3 y8 L3 `% U# T7 e" R' c
  2.     /*supported*/
    1 h/ t" [3 f! \6 p( ~
  3. }
    8 j4 g- @( `) v0 p  O9 z; k

  4. # `+ n9 g# o' x7 ~) b3 N
  5. //or
    $ }% L: K  G  W. F
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {
    . A& H$ v; z/ N2 O. @
  7.     /*supported*/
    : i/ t  J7 u! e: e' L
  8. }
复制代码

' J# f6 x) k) f- z# j1 c6 t( g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-9 22:46 , Processed in 0.117798 second(s), 22 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!