菜鸟教程小白 发表于 2022-12-12 22:16:27

iOS 7.1.1 Safari 浏览器搞乱在线/离线状态


                                            <p><p>我有一个跨浏览器在线/离线测试,用于设计在多个浏览器上运行的网页。
它适用于免费指标:</p>

<ul>
<li>窗口上的事件监听器</li>
<li>document.body 上的事件监听器</li>
<li>navigator.onLine 变量的轮询</li>
</ul>

<p> <a href="http://jsfiddle.net/3mMfG/" rel="noreferrer noopener nofollow">http://jsfiddle.net/3mMfG/</a> </p>

<pre><code>window.addEventListener(&#34;online&#34;, function() {
    document.getElementById(&#39;test1&#39;).innerHTML = &#34;online&#34;;
}, false);

window.addEventListener(&#34;offline&#34;, function() {
    document.getElementById(&#39;test1&#39;).innerHTML = &#34;OFFLINE&#34;;
}, false);


document.body.ononline = function() {
    document.getElementById(&#39;test2&#39;).innerHTML = &#34;online&#34;;
};
document.body.onoffline = function() {
    document.getElementById(&#39;test2&#39;).innerHTML = &#34;OFFLINE&#34;;
};


setInterval(function () {
    if (navigator &amp;&amp; navigator.onLine)
      document.getElementById(&#39;test3&#39;).innerHTML = &#34;online&#34;;
    else
      document.getElementById(&#39;test3&#39;).innerHTML = &#34;OFFLINE&#34;;
}, 500);
</code></pre>

<p>我在多个 iOS、Android 或笔记本电脑浏览器上成功使用了这段代码。</p>

<p>在特定的 iOS 7.1.1 设备上它不起作用。我已经成功地在其他 iOS 7.1.1 设备上对其进行了测试,但是在这个特定的设备上,当离线时,几秒钟 (~5) 后,所有指标都恢复为“在线”。</p>

<p>我已经在多台设备上进行了测试,但只能在这个特定的设备上重现问题。我使用“飞行保存模式”按钮将其设为离线,不允许使用 wifi 或蓝牙,但几秒钟后,浏览器中触发在线事件,并且 navigator.onLine 变量变为 true...奇怪...</p>

<p>如果您对发生的事情有任何线索,我将很高兴与您交流。</p>

<p>如果您使用 <em>您的</em> 设备测试该页面,请随时发表评论,让我知道它是否适用于 <em>您的</em> 设备。谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 iOS 设置应用程序中重置网络设置更正了此行为...</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 7.1.1 Safari 浏览器搞乱在线/离线状态,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23612955/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23612955/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 7.1.1 Safari 浏览器搞乱在线/离线状态