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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。2 r* t4 l$ c9 S
: s& {; W* q- c2 ?9 k' L" J
通过何种方式检测?

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

  1. $(document).ready(function() {6 i8 w1 N0 K2 L  g3 e& ?
  2.   if( typeof(WebSocket) != "function" ) {* x* B: G8 l( p5 `; a: G
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");4 |! D9 U) m7 x0 d( s- L  G
  4.   }6 @3 j8 q' G% N2 R
  5. })3 @; N4 b; j3 O( m
复制代码

2 e6 v! y7 P- y2 _

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

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

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {' h7 q. X2 N) @- a6 |
  2.     /*supported*/ 4 ]2 i( H: w: @1 d: l
  3. }
    ( @" r. I5 B0 \' N1 S

  4. ) b; L+ B: d! \. {4 v
  5. //or& L6 x$ g/ S7 ^* P4 f" x2 t
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {! s( \+ U8 k' [" k. F
  7.     /*supported*/
    6 t* C, P% a+ C! R, w; L
  8. }
复制代码
2 {1 ^% @9 a4 e$ w5 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 21:45 , Processed in 0.070970 second(s), 22 queries .

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