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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。% t" ~1 N! K! t2 Z
2 S. y; B. A4 {7 N  X4 K  T
通过何种方式检测?

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

  1. $(document).ready(function() {
    , e/ U" _; S9 p8 [+ j0 F9 q5 d
  2.   if( typeof(WebSocket) != "function" ) {
    # K4 r; p& P: P, g2 e; L
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");  l6 ^( ^# C# p* k
  4.   }
    ' R8 _; s% C: v6 M" X  k. @& Y
  5. })
    2 F9 p. m# O& U- I# h& r8 C: H
复制代码
4 ^+ F  q# F% ?! c- v* W

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

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

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {
    : x3 G+ Y) o3 S" {6 Q
  2.     /*supported*/ * E, Q) n9 ]1 C9 p
  3. }! [  ]% \& b- l$ o: h
  4. + W" \7 X- E8 O& m
  5. //or
    ' Q( i2 C( e* q9 u1 j# x& w
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {
    1 y  _+ s2 R7 p; n! z: b( ]
  7.     /*supported*/
    0 B  `; Y* P6 |# h: Y' G' s& Y
  8. }
复制代码
; ~( X- ?9 D' [, w& {& c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 11:40 , Processed in 0.057290 second(s), 23 queries .

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