[英]How to callback online/offline status?
一旦我擺弄jsfiddle,我就失去了互聯網連接。 然后,該網站提醒我我沒有互聯網連接。 在這里,通過單擊禁用連接來嘗試一下:
它們在某種程度上實現哪些檢查沒有任何不同Ajax請求互聯網連接的代碼本 。
我經過一些挖掘發現了這個片段
Heyoffline.prototype.setup = function() {
this.events = {
element: ['keyup', 'change'],
network: ['online', 'offline'] // THIS PART
};
this.elements = {
fields: document.querySelectorAll(this.options.elements.join(',')),
overlay: document.createElement('div'),
modal: document.createElement('div'),
heading: document.createElement('h2'),
content: document.createElement('p'),
button: document.createElement('a')
};
但由於它是自動生成的,因此我不知道它是如何工作的。 鏈接
任何人都可以闡明一下,以便我可以在系統中實現類似的功能。
魔術在這里完成
Heyoffline.prototype.networkEvents = function(event) {
return addEvent(window, event, this[event]);
};
在attachEvents
稱為
Heyoffline.prototype.attachEvents = function() {
var event, field, _i, _j, _len, _len1, _ref, _ref1,
_this = this;
_ref = this.elements.fields;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
field = _ref[_i];
this.elementEvents(field);
}
_ref1 = this.events.network;
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
event = _ref1[_j];
this.networkEvents(event); //Called here
}
return addEvent(window, 'resize', function() {
return _this.resizeOverlay();
});
};
聯機或脫機事件均通過addEvent
函數傳遞給此事件
addEvent
定義為:
addEvent = function(element, event, fn, useCapture) {
if (useCapture == null) {
useCapture = false;
}
return element.addEventListener(event, fn, useCapture);
};
因此,按照我所看到的使用在線/離線功能的真正方法,您需要做的就是調用:
//online
window.addEventListener('online', function(){alert('You are online')}, false);
//offline
window.addEventListener('offline', function(){alert('You are online')}, false);
和鮑勃·雅伯
在這里也進行了測試: http : //jsfiddle.net/W4EKh/
警報在jsfiddle一執行之后就出現了,因此我可以確定這是如何工作的...
此外,這是一些幫助的方法:)...
function networkListener(a, b){
var offlineF, onlineF;
if(a instanceof Function && b instanceof Function){
onlineF = a;
offlineF = b;
}else if(a instanceof Function){
if(typeof b === "string"){
if(b === "online"){
onlineF = a;
}else if(b === "offline"){
offlineF = a;
}
}else{
onlineF = a;
}
}
if(typeof onlineF !== "undefined"){
window.addEventListener('online', onlineF, false);
}
if(typeof offlineF !== "undefined"){
window.addEventListener('offline', offlineF, false);
}
}
在這里您可以嘗試一下...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.