2013-05-15 3 views
0

Есть ли возможность проверить подключение к сети в расширении Firefox? Я просто хочу знать, находится ли пользователь в сети или в автономном режиме.Проверьте подключение к сети через расширение Firefox

Я уже пробовал navigator.online, но он не работает.

+0

Я выяснил, что network.online - это состояние, если вы выберете в файле браузера-> работу в автономном режиме. Но network.online не изменяется, если я отключил сетевое соединение. Кто-то может мне помочь? – ray

ответ

1

Как я узнал, Firefox не знает, разрезал ли я сетевое соединение. Таким образом, я создал немного XMLHttpRequest (XHR), чтобы установить логическое значение:

var netOnline; 

function createXMLHttpRequest() { 
    return Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] 
     .createInstance(Components.interfaces.nsIXMLHttpRequest);  
} 

function issueRequest() { 
    var req = createXMLHttpRequest(); 
    req.open("GET", "http://google.com", true); 
    req.timeout = 1000; // ms 
    // online 
    req.addEventListener("load", function(event) { 
     netOnline = true; 
    }); 
    // timeout -> offline 
    req.addEventListener("timeout", function(event) { 
     netOnline = false; 
    }); 
    // error -> offline 
    req.addEventListener("error", function(event) { 
     netOnline = false; 
    }); 
    req.send(); 
}; 

Он работает отлично. Во всяком случае спасибо за вашу помощь!

Смежные вопросы