Détecter si le navigateur supporte javascript ou ajax dans Wicket?

Détecter si le navigateur prend en charge javascript ou ajax dans Wicket?

Wicket a intégré de nombreux composants de secours Ajax qui se dégradent en une demande normale si ajax n'est pas disponible ou si Javascript est désactivé. Quelques bons exemples sont AjaxFallbackButton, AjaxFallbackLink et etc.

Note
Cependant, certains composants n'ont pas implémenté le comportement de secours, par exemple AjaxLazyLoadPanel, il conservera pour toujours l'image par défaut du Wicket si JavaScript est désactivé.

Solution

En fait, Wicket a un mécanisme intégré pour détecter si le navigateur prend en charge JavaScript. Mais, Wicket désactive cette fonction par défaut pour une raison.

1. Rassemblez les informations de votre navigateur

Dans l'application Wicket, remplacezinit() parsetGatherExtendedBrowserInfo(true), cela indique à Wicket de collecter des informations supplémentaires à partir de votre navigateur.

    protected void init() {
        getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
    }

2. Détecter JavaScript

Maintenant, vous pouvez détecter si le navigateur prend en charge JavaScript comme ceci:

WebClientInfo clientInfo = (WebClientInfo)WebRequestCycle.get().getClientInfo();
if(clientInfo.getProperties().isJavaEnabled()){
  //Javascript is enable
}else{
 //Javascript is enable
}

Explication

Lorsque l'utilisateur demande une page, Wicket exécute un test de redirection JavaScript simple dans le navigateur client pour tester si le JavaScript du navigateur est pris en charge et l'enregistre dans la session de l'utilisateur. Après avoir exécuté le test de redirection, Wicket redirigera vers la page d'origine demandée. L'ensemble du processus est très rapide, mais vous verrez un flash de page vierge. C'est pourquoi Wicket le désactive par défaut. Le flash de la page noire est vraiment ennuyeux, lorsque vous voyez ce type de page flash, vous pouvez supposer que ce site est un site de phishing :), tout comme votre client.

La page de test de redirection Wicket est générique et convient dans tous les cas, mais le flash d'une page vierge est vraiment inacceptable, du moins pour moi.