2011-08-24 5 views
0

Hier, j'avais un problème avec certains graphiques Google sur mon site tout en exécutant l'opéra. Je recevais l'erreur "votre navigateur ne supporte pas les graphiques". Aujourd'hui c'est tout à fait correct et semble en fait courir un peu plus vite.Détecter si le navigateur prend en charge Google Graphiques

Je voudrais avoir une sauvegarde dans mon javascript pour que si elle n'est pas supportée, je n'affiche qu'une table.

Existe-t-il une telle façon de faire ou dois-je vérifier par rapport à une liste de navigateurs entrants et comprendre par moi-même?

Répondre

2

De http://code.google.com/intl/en/apis/chart/interactive/docs/:

graphiques sont rendus à l'aide HTML5/technologie SVG pour fournir compatibilité inter-navigateur (y compris VML pour les anciennes versions IE) et portabilité multi-plateforme pour iPhones, iPads et Android.

Ils utilisent apparemment SVG en ligne. http://caniuse.com/#search=inline%20svg n'est pas très utile ici car il s'agit d'un analyseur HTML5 qui reconnaît le contenu SVG, mais Google génère du contenu SVG de manière dynamique. Je pense que les tests de fragment de code ci-dessous pour le support SVG en ligne correctement:

var svgRoot = null; 
if ("createElementNS" in document) 
    svgRoot = document.createElementNS("http://www.w3.org/2000/svg", "svg"); 
if (svgRoot && "width" in svgRoot) 
    alert("Inline SVG supported"); 

Si un élément dynamique créé SVG a des propriétés spécifiques SVG alors tout devrait bien se passer. Vous devrez toujours supposer que MSIE est généralement pris en charge (via VML). Ou utilisez How do you detect support for VML or SVG in a browser pour détecter le support VML. Et cela correspondra, je l'espère, aux vérifications de compatibilité que Google effectue (sans les pépins comme celui que vous avez apparemment observé).

+0

Si vous utilisez Modernizr, vous pouvez également vérifier le support svg en ligne comme ceci: 'if (Modernizr.inlinesvg) {// supporte le svg inline}' – diggersworld

Questions connexes