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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。
0 ]8 r6 N" Q" F* N
3 y# r. @  [2 o% z2 v+ J' H# s通过何种方式检测?

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

  1. $(document).ready(function() {3 ?2 f, d/ S  f+ W% G, p1 u
  2.   if( typeof(WebSocket) != "function" ) {- u  ?# v# H5 p+ M
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");  o/ H- I, n" W* l1 r) D! @. G
  4.   }8 a5 b8 M: T0 ^& g3 M& T& @8 Y" M- ^
  5. })
    7 G% C, L. n; Z9 d+ I* j
复制代码
5 V7 G1 B7 A9 z* A4 P) j

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

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

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {
    * [/ ~. ~1 {5 T5 x/ J2 G7 T1 b" ~3 H
  2.     /*supported*/
    % }3 n% j: d# H+ Z6 e* O
  3. }
    $ I5 }0 ^* C/ v$ u! V, I# w. i
  4. + B/ [$ Y9 j* p: s3 h
  5. //or
    ) f8 Z4 S! t+ V+ T+ W0 ^
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {# Y5 }/ H" v2 a5 ?" v; G/ P
  7.     /*supported*/" V  g; a$ s- M" v/ r
  8. }
复制代码
/ s/ W. P* B- b1 A( N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:24 , Processed in 0.073252 second(s), 22 queries .

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