Version du navigateur détecte en utilisant GWT?
-
28-09-2019 - |
Question
Y at-il api GWT qui va me dire quelle version du navigateur, il détecté?
J'ai trouvé une faille à la manipulation regex IE7 et le besoin de coder autour de quelques expressions String.matches () délicat.
La solution
Vous pouvez utiliser GWT différée liaison à l'aide de remplacement et créer deux implémentations de votre classe dans laquelle vous utilisez regex.
Par exemple, supposons que votre classe est nommée Parser
et contient le code pour tous les navigateurs Web, sauf pour IE7. Ensuite, vous pouvez étendre Parser
et créer la classe ParserIE7
pour IE7. Ensuite, dans votre fichier de configuration du module GWT vous pouvez ajouter:
<replace-with class="Parser">
<when-type-is class="Parser"/>
</replace-with>
<replace-with class="ParserIE7">
<when-type-is class="Parser" />
<when-property-is name="user.agent" value="ie7"/>
</replace-with>
Ensuite, en appelant
Parser parser = GWT.create(Parser.class);
vous devriez avoir une mise en œuvre de Parser
appropriée (en fonction navigateur Web) dans la variable parser
.
Autres conseils
Vous pouvez détecter le type de navigateur en utilisant le code ci-dessous.
public static native String getUserAgent() /*-{
return navigator.userAgent.toLowerCase();
}-*/;
Ensuite, vous pouvez appeler cette fonction et de regarder le type de navigateur. Par exemple le code ci-dessous décide si elle est internet explorer ou non.
if(getUserAgent().contains("msie"))
{
///////// Write your code for ie
}
Cette page a l'agent utilisateur pour à peu près tous les navigateurs connus à l'homme.
Si vous utilisez la bibliothèque de GXT, vous pouvez utiliser GXT .isChrome au chrome détecter et vous pouvez trouver des membres de données différents de la classe GXT pour détecter un navigateur particulier.