2011-01-04 8 views
1

Wenn ich meinen JavaScript-Code schreibe, kann ich oft nicht die Paranoia erschüttern, die irgendeine Funktion oder Codezeile in diesem oder jenem Browser bricht ...Wie kann ich feststellen, ob eine JavaScript-Funktion von einem bestimmten Browser unterstützt wird?

Wie kann ich überprüfen, ob der Code, den ich schreibe, x-Browser-kompatibel ist?

+1

Sprechen Sie über Sprachfunktion oder DOM-API-Kompatibilität? Kannst du ein konkretes Beispiel geben? – user113716

+0

Ich denke, diese Frage ist zu einfach und breit genug, um angemessen zu antworten. Sie haben nach Sprachfunktionen gefragt, das würde neue Sachen in der eigentlichen Sprache wie "const", Getter und ähnliches bedeuten. Aber ich meine, Sie meinen DOM- und BOM-Features, wie 'document.activeElement', denen die Leute einige Hinweise gegeben haben. Aber es gibt keine einzige Antwort für alle Ihre Bedürfnisse. Die Grundidee ist die Feature-Erkennung (http://ejohn.org/blog/future-proofing-javascript-libraries/) über die Browsererkennung. Sie werden jedoch nicht über Fehler in den Funktionen informiert, sondern nur, dass sie implementiert sind. –

Antwort

4

Die Erkennung grundlegender Merkmale kann durch Abfragen von Fenstereigenschaften erfolgen, z. B. window.XMLHttpRequest.

In bestimmten Fällen wird es sehr viel komplexer als nur die Abfrage von Eigenschaften, da die definierten Methoden inkonsistent sein können. In diesem Fall hängt es wirklich vom Szenario ab, aber manchmal müssen Sie etwas so schmutziges tun, wie ein Element erstellen, das vom Bildschirm versetzt ist, dann bestimmte Eigenschaften festlegen und sehen, ob diese Änderungen reflektiert werden oder nicht.

Es wäre wahrscheinlich nützlich, wenn Sie bestimmte Beispiele für bestimmte Fälle, da es buchstäblich Tausende von Dingen zu erkennen gibt und nicht alles gleich ist.

0

können Sie überprüfen, ob die Funktion für die Funktion, die Sie wie folgt existiert verwenden möchten:

if(functionOrObjectName) { 
    //will execute if the function or object is defined 
} 
+1

Dies wird einen Fehler auslösen, wenn eine Variable oder Funktion nicht definiert ist. 'typeof undefinedVar' gibt' undefined' für nicht definierte vars und Funktionen zurück. Was Sie vorschlagen, funktioniert, wenn Sie für eine Eigenschaft testen. Um also auf globale Funktionen und Variablen (die Props des Window-Objekts sind) zu testen, können Sie 'if (window.undefinedVar)' verwenden, was keinen Fehler verursacht –

Verwandte Themen