Comment puis-je savoir si mon navigateur supporte Javascript 1.5 ou non? en utilisant javascript bien sûr. (Ou devrais-je googled ou binged plus?)Y a-t-il un moyen fiable de savoir quelle révision de ECMA-262 est supportée par mon navigateur?
Répondre
Pour « JavaScript » officiel, qui est la mise en œuvre de Mozilla de ECMA-262, vous pouvez utiliser l'attribut type
pour détecter la version:
<script type="text/javascript;version=1.5"> v= '1.5'; </script>
<script type="text/javascript;version=1.6"> v= '1.6'; </script>
<script type="text/javascript;version=1.7"> v= '1.7'; </script>
...
Cela fonctionne aussi dans Opera, (les versions récentes prétendent supporter JavaScript 1.5). IE et Webkit n'exécuteront aucun script avec un paramètre de version dans son type.
Ceci est similaire à l'ancienne école language
attribut:
<script language="javascript1.5"> v= '1.5'; </script>
...
Ceci est généralement considéré comme obsolète, mais il ne fonctionne pas dans d'autres navigateurs. Les navigateurs Webkit récents prétendent prendre en charge 1.7 et tous les IE prétendent prendre en charge uniquement 1.3.
IE a its own versioning scheme pour JScript, que vous pouvez renifler pour des commentaires conditionnels par:
<script type="text/javascript">
/*@cc_on @if (@_jscript_version>=5.5)
v= '5.5';
@end @*/
</script>
D'autres navigateurs, vous ne pouvez pas le savoir. Comme pour la version ECMA-262, tous les navigateurs modernes supportent la ligne de base de la troisième édition (ouais, OK, il y a de petites différences et des bogues purs et simples, surtout dans IE, mais quand même). Aucun navigateur ne prend en charge de grandes quantités de la cinquième édition pour le moment, mais cela viendra. (Il n'y avait pas de quatrième édition.)
Rien de tout cela n'est très utile. Comme vous pouvez le voir, les numéros de version sont assez laineux et ne reflètent pas vraiment ce que le navigateur supporte terriblement bien. Vous êtes généralement mieux de faire des reniflages de capacités. Par exemple si vous voulez les fonctionnalités JSON
de ECMA-262-5, voyez si window.JSON
existe. Si vous voulez une liaison de fonction, voyez si .bind
existe sur votre fonction. Vous pouvez souvent détecter le manque de ces fonctionnalités et corriger un repli natif JavaScript pour quand ils ne sont pas disponibles.
Les fonctionnalités syntaxiques de JavaScript, cependant, ne peuvent être repérées.Inclure simplement quelque chose comme une définition de getter/setter dans un bloc de code JavaScript donnera immédiatement une erreur de syntaxe dans IE avant que vous puissiez renifler leur disponibilité. Mais ce n'est généralement pas un trop gros problème car en pratique, vous ne pouvez pas utiliser ces nouvelles fonctionnalités de toute façon.
Vous pouvez spécifier quelle version de Javascript doit évaluer un bloc de code comme ceci:
<script language="javascript1.5">
//this code gets run
</script>
Plus d'info here.
Cette documentation est * ancienne * –
Oui, j'ai remarqué, mais j'avais encore la réponse à ce que je cherchais :-) –
Ce n'est généralement pas la peine d'essayer.
Si vous souhaitez utiliser une fonctionnalité spécifique, recherchez si cette fonctionnalité est prise en charge à la place.
Même alors, il n'y a aucune garantie que la fonctionnalité est implémentée correctement! ;-)
Cas d'exemple ... IE prend en charge document.getElementById(id);
Cependant, sauf si vous utilisez IE8 en mode IE8 Standards, il peut renvoyer l'un des nombreux mauvais résultats.
+1 Merci pour la perspicacité. –
Il existe des scripts qui génèrent un flotteur contenant la version Javascript. Voici une lecture agréable sur la détection avec Javascript: https://developer.mozilla.org/En/Browser_Detection_and_Cross_Browser_Support
est ici tel script: http://www.docsteve.com/DocSteve/Samples/JS/js_version.html
Une autre façon de le faire, vous pouvez mettre à l'intérieur essayer de bloquer sa syntaxe. par exemple:
try{
"use strict";
let x=1;//if it's works, then you have some supprot
console.info("Good news, ecma6 works ");
}catch(e){
console.warn("Sorry, but ecma6 still doesn't supported");
}
- 1. Quelle est la valeur supportée par Visual Studios CSS?
- 2. Un moyen fiable de comparer (par programme) les fichiers PDF?
- 3. Quelle révision de html5lib est stable?
- 4. Y at-il un moyen de savoir quand une animation SVG est terminée?
- 5. Quelle est la plus ancienne version de rubygems supportée?
- 6. Android Y at-il un moyen de savoir quand je libère mon doigt d'un widget galerie?
- 7. Dossier svn perdu il y a quelque temps .. comment puis-je savoir quelle révision l'a?
- 8. Existe-t-il un moyen fiable de savoir si une requête est dans un contexte Ajax en PHP?
- 9. Détection de navigateur fiable avec javascript?
- 10. Comment savoir quelle classe est référencée par un objet Class?
- 11. Y at-il un moyen de savoir si un périphérique est connecté à com1 (RS-232)?
- 12. Quel est un moyen fiable de vérifier un flux RSS pour de nouvelles entrées?
- 13. Quelle est l'URL de mon script src?
- 14. Y at-il un moyen de savoir qui est le débogage à distance sur Glassfish?
- 15. Y at-il un moyen de savoir quelle partie du fichier est encore dans la RAM physique après qu'elle ait été lue par un processus
- 16. La configuration OTA est-elle supportée par Android OS?
- 17. Y a-t-il un moyen de savoir qui détient une référence à un objet?
- 18. Y at-il un moyen de savoir combien de pixels un utilisateur déplace un scrollview?
- 19. Y at-il un moyen de lier mon constructeur flex à mon application django?
- 20. Dans l'oncreate() de mon activité puis-je savoir quelle est l'intention qui lance mon activité?
- 21. Quel est le moyen le plus fiable de vérifier si une variable JavaScript est nulle?
- 22. Comment puis-je savoir de manière fiable si mon application Android fonctionne sur un appareil doté de JIT?
- 23. Quelle est la bibliothèque standard (ou la mieux supportée) de grand nombre (précision arbitraire) pour Lua?
- 24. Quel est un moyen fiable pour charger une DLL lors du chargement de l'Explorateur Windows?
- 25. Quel est un bon moyen de déterminer ce qu'il y a dans mon viewstate?
- 26. Façon de savoir si mon application est installée
- 27. Existe-t-il un moyen pour le service WCF de savoir de quelle machine provient l'appel?
- 28. Y at-il un moyen dans Windows de savoir si un processus ne répond pas?
- 29. silverlight error - l'opréation n'est pas supportée par un uri relatif
- 30. Un moyen fiable pour identifier un ordinateur par son adresse IP
Félicitations, vous êtes la première personne que j'ai vu utiliser Bing comme un verbe. –