Wie mithilfe von Javascripts, die in zwei verschiedenen Browsern implementiert

January 31

Wie mithilfe von Javascripts, die in zwei verschiedenen Browsern implementiert

Browser-Kompatibilität ist eines der ältesten Kopfschmerzen für JavaScript-Programmierer auf der ganzen Welt. Es gibt zwei Möglichkeiten, Bedingungen in Ihrem JavaScript, verschiedene Wege je nach Kompatibilität zu nehmen können: Browsererkennung und Objekterkennung. Browsererkennung überprüft der Browser direkt zu sehen, die machen und jedes Modell ist es. Dadurch, dass Sie wählen, welcher Code für welchen Browser ausgeführt. Objekterkennung können Sie überprüfen, ob ein Aspekt des Browsers JavaScript Sprachdefinition vorhanden ist, bevor ich es benutze. Browser-Erkennung ist eine ältere, klassische, Objekterkennung kann eine elegantere Lösung sein.

Anweisungen

Browser-Erkennung

1 Schreiben Sie eine Funktion, die erfolgreich den Namen des Browsers erkennen.

Funktion thisBrowserIs(browserTest) {}

if(navigator.userAgent.indexOf(browserTest)!=-1){

return true;

}

}

Dies sagt, wenn es kann finden Sie den String an dieser Funktion innerhalb der navigator.userAgent-Eigenschaft übergeben wird, dann true zurück. Sie können festlegen, dass BrowserTest auf "MSIE" (Microsoft Internet Explorer), "Firefox", "Safari", "Opera" oder "Chrome", wenn Sie die Funktion aufrufen.

2 Verwenden Sie die Funktion browserspezifischen Code ausführen.

{if(thisBrowserIs("MSIE"))}

// insert code written for MSIE

}

Dies sagt, wenn diese Browser Microsoft Internet Explorer ist, führen Sie dann alle Skripts innerhalb dieser Bedingung. Wie bereits erwähnt, könnte dies mit "Firefox", "Safari", "Opera" oder "Chrome" statt.

3 Andere Optionen zu prüfen. Das sieht einfach genug, aber es kann ein großes Durcheinander ganz schnell werden, wenn Sie Browser-Versionsnummer ermitteln möchten, oder noch schlimmer, wenn ein neuer Browser kommt diese Funktion nicht entwickelt wurde, vorherzusagen. Die anmutige Alternative ist Objekterkennung.

Objekterfassung

4 Wählen Sie ein Objekt zu erkennen. Nur MSIE hat ein "document.all"-Objekt. Nur Opera verfügt über ein "window.opera"-Objekt. Ältere Versionen von MSIE unterstützen nicht das Objekt "document.getElementsByClassName". Mit Objekterkennung, gibt es jedoch nicht, wie viel sich all das Browser-Kompatibilität-Zeug merken müssen. Wollen Sie ein Objekt verwenden, das Sie denken möglicherweise nicht in jedem Browser funktionieren, so stellen Sie eine bedingte Anweisung zu sehen, ob der Browser seine Existenz erkennt vor der Verwendung.

{if(Document.getElementsByClassName)}

Dies sagt das GetElementsByClassName-Objekt vorhanden, dann führen Sie den Code in den folgenden Klammern.

5 Verwenden Sie das Objekt, das für getestet wurde, nun, da der Browser ist sicher, dass es existiert, dann schließen Sie die bedingte Anweisung.

myElementArray = document.getElementsByClassName("myClass");

}

Dies sagt Verwendung GetElementsByClassName um ein Array "MyElementArray" für alle Elemente mit ihrer Klasse setzen auf "MyClass."

6 Verwenden Sie eine "else"-Anweisung nach der Bedingung "Wenn", um eine Codierung Alternative zu den getesteten für Objekt einzuschließen. Manchmal ist optional.

Else {}

Code-eine Alternative zu dem GetElementsByClassName-Objekt

}