我有一個跨瀏覽器在線/離線測試的網頁設計爲在多個瀏覽器上工作。 它的工作原理與自由指標:iOS 7.1.1 Safari瀏覽器搞亂在線/離線狀態
- 事件監聽器窗口document.body的
- 事件偵聽器的navigator.onLine變量
- 輪詢
window.addEventListener("online", function() {
document.getElementById('test1').innerHTML = "online";
}, false);
window.addEventListener("offline", function() {
document.getElementById('test1').innerHTML = "OFFLINE";
}, false);
document.body.ononline = function() {
document.getElementById('test2').innerHTML = "online";
};
document.body.onoffline = function() {
document.getElementById('test2').innerHTML = "OFFLINE";
};
setInterval(function() {
if (navigator && navigator.onLine)
document.getElementById('test3').innerHTML = "online";
else
document.getElementById('test3').innerHTML = "OFFLINE";
}, 500);
我在多個iOS,Android或Windows上使用這段代碼筆記本電腦瀏覽器成功。
在特定的iOS 7.1.1設備上不起作用。我已經在其他iOS 7.1.1設備上成功測試過它,但在這個特定的設備上,當它變成離線狀態時,幾秒鐘後(〜5),所有指示器都會回到「在線」狀態。
我已經在多個設備上測試過,但只能在這個特定的設備上重現問題。我使用「飛行保存模式」按鈕將其關閉,不允許使用WiFi和藍牙,但幾秒鐘後,在瀏覽器中觸發在線事件,navigator.onLine變量變爲真...奇怪...
如果您對發生的事情有任何線索,我會很樂意與您交流。
請,如果你測試與您設備的頁面,不要猶豫,留言,讓我知道,如果它您設備上。由於