Heim > Web-Frontend > js-Tutorial > Hauptteil

Implementierungscode für die Javascript-Erkennung von Internetzugang_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 16:35:07
Original
1231 Leute haben es durchsucht

Der einfachste und einfachste Weg ist das Laden von Netzwerkressourcen, JS-Dateien oder Bilddateien.

Code kopieren Der Code lautet wie folgt:


typeof window.jQuery === „undefiniert“ // false oder true zurückgeben

Verwenden Sie jQuery-Variablen, um zu erkennen, ob Sie mit dem Internet verbunden sind

function doConnectFunction() {
  return true;
}
function doNotConnectFunction() {
  return false;
}

 var i = new Image();
i.onload = doConnectFunction;
i.onerror = doNotConnectFunction;
i.src = 'http://su.bdimg.com/static/superplus/img/logo_white.png?d=' + escape(Date());
Nach dem Login kopieren

Das Problem beim Laden von Netzwerkressourcen ist die Erkennung des Internets. Wenn es sich um eine LAN-Erkennung handelt, können Sie nichts tun.
Zu diesem Zeitpunkt benötigen wir eine bessere Lösung, daher müssen wir navigator.onLine verwenden. Der Nachteil dieses Attributs besteht darin, dass es perfekt mit den Browsern Chrome und Safari kompatibel ist und IE7 und höher unterstützt wird. Firefox und IE6 sind bemitleidenswerter. Sie geben nur dann „false“ zurück, wenn der Browser „offline“ ist, andernfalls geben sie „true“ zurück. Dies gilt auch dann, wenn das Netzwerkkabel eingeklemmt ist, Opera unterstützt dies jedoch nicht mehr.

Also müssen wir eine Kompatibilitätsmethode hinzufügen: Senden Sie eine HTTP-Header-Anfrage an die Adresse „location.hostname“. Der Code lautet wie folgt:

var xhr = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" );
var status;
xhr.open( "HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );
 try {
  xhr.send();
  return ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 );
 } catch (error) {
  return false;
 }
Nach dem Login kopieren

Zu beachten ist, dass der dritte Parameter der open-Methode als false übergeben werden muss und es sich um eine synchrone Anfrage handeln muss.

Zusammenfassung: Wenn der Browser navigator.onLine unterstützt, verwenden Sie navigator.onLine. Wenn er dies nicht unterstützt, senden Sie eine HTTP-Header-Anfrage.

Originalartikel, bitte beim Nachdruck angeben: Nachdruck aus Front-End-Entwicklung

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage