【问题标题】:when throttling chrome to offline the navigator.onLine is still true当限制 chrome 离线时, navigator.onLine 仍然是 true
【发布时间】:2016-10-03 17:57:54
【问题描述】:

chrome 开发工具网络限制离线仍将 navigatior.onLine 显示为 true

我想测试一个 web 应用的离线体验。我正在检查设备是在线还是离线,然后调用不同的函数(即没有 ajax 调用)。

如何在不断开机器连接的情况下使用 chrome 归档离线行为。我仍然需要其他服务的连接。

【问题讨论】:

    标签: javascript google-chrome-devtools offline


    【解决方案1】:

    只设置navigator.onLine = false是不行的,但是可以完全覆盖“onLine”属性:

    Object.defineProperty(navigator, "onLine", {value: false})
    

    如果您想稍后恢复它,请保留对旧属性描述符的引用:

    var oldOnLineDescriptor = Object.getOwnPropertyDescriptor(
        navigator.constructor.prototype, "onLine")
    // ...
    Object.defineProperty(navigator, "onLine", oldOnLineDescriptor)
    

    【讨论】:

      【解决方案2】:

      试试这个。

       window.addEventListener('online', onOnline);
       window.addEventListener('offline', onOffline);
      
      function onOnline() { 
        window.isOnline = true;
        // do what you want 
      }
      
      function onOffline() {
        window.isOnline=false 
        // do what you want
      }
      

      【讨论】:

      • 变量 window.isOnline 仍未定义...所以,这不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2021-09-08
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多