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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-29 14:51:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Web Sockets 目前在各个浏览器到终端支持性并不好, 只有IE 10+, FF 34+, Chrome 31+, Safari 7.1+, Android Browser 4.4+ 才得到支持。" W% Q8 Y* Q  A# ^& c9 }0 G) L" b+ C

& U5 E: m, L9 ^  i通过何种方式检测?

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

  1. $(document).ready(function() {  L( {3 |8 L0 ]* U+ m
  2.   if( typeof(WebSocket) != "function" ) {
    ! ?# X- D2 c4 {2 ~+ f5 Y
  3.     $('body').html("<h1>Error</h1><p>Your browser does not support HTML5 Web Sockets. Try Google Chrome instead.</p>");$ e( Z) d% O: Y5 L' c: K" u) W
  4.   }8 s7 `- E9 \! t
  5. })
    * Q' L5 E. h) M: `2 R, W* O
复制代码
/ u) q5 ?0 ~3 o2 u% [& ~/ W9 o9 k$ M; T

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

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

所以比较严谨的方式是:

  1. if (typeof WebSocket != 'undefined') {$ o; d) j! @5 u$ @% l
  2.     /*supported*/ 8 x' P  N4 M! v  ~  M
  3. }
    ' n9 `+ K1 P7 Q$ k8 I

  4. / Q( W8 ^5 l# M! u
  5. //or
    % y$ n4 z" p3 ^8 c# ~2 Q; I# N2 [2 U
  6. if (!!window.WebSocket && window.WebSocket.prototype.send) {9 H& E1 |# H( o( C8 S* R* @+ h
  7.     /*supported*/2 Y* J4 x+ L/ |4 U) g! i3 _) }! E; E
  8. }
复制代码
- Q& X8 t, v+ ^. L% j8 O- n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 06:18 , Processed in 0.125393 second(s), 24 queries .

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