RECHERCHE

Plan du site

BOURSE

 

RUBRIQUES

 
 PRATIQUE CLIENTS WEB 
JavaScript : détecter un bloqueur de popups
 
Quelques lignes de code pour avertir le visiteur qu'il manque peut-être une information intéressante faute de pouvoir visualiser les popups. (15/11/2004)
  Forum

Réagissez dans les forums de JDN Développeurs

Avec la diffusion des barres d'outils Google, MSN et autres, ainsi que l'apparition de fonctionnalités idoines dans les navigateurs modernes comme FireFox, il devient de plus en plus difficile d'ouvrir une fenêtre popup légitime de nos jours - et ceux qui s'y essaient prennent le risque de voir la fenêtre être silencieusement bloquée, et ses informations donc inaccessibles.

Il devient alors nécessaire de prévenir l'utilisateur que sa configuration logicielle ne lui permet de voir certaines informations contenues dans un popup. Et pour cela, il faut détecter les bloqueurs de popup, ce que fait le script ci-après.

Pour ce faire, nous tentons simplement d'ouvrir une fenêtre popup (en dehors, normalement, de la zone de visibilité), et nous testons si cela n'a pas provoqué une erreur, via l'évènement onError du DOM. Selon le résultat, on affiche un avertissement... ou pas.

Le code
var resultatTest = false;
var resultatProbleme = false;
function probleme() {
  resultatProbleme = true;
  }
window.onerror = probleme;

var monPopup = window.open("", "poptest", "width=1, height=1, left=5000, top=5000", true);
monPopup.blur();
monPopup.close();
resultatTest = (resultatProbleme == false ? true : false);
window.onerror = null;


Le tout étant appellé par le HTML suivant :
<html>
  <head>
    <script src="popupblocktest.js"></script>
  </head>
  <body>
    <br><br><br><br>
    <script>
if (resultatTest)
  document.write("Lisez les informations affichées dans le popup qui s'est ouvert.");
else
  document.write("Il semble que vous disposez d'un bloqueur de popups. Celui-ci risque de vous empêcher de lire certaines informations nécessaires. Veuillez autoriser les popups pour ce site et recharger la page (nous n'afficherons de publicités).");
    </script>
  </body>
</html>


Autre solution proposée par l'un de nos lecteurs :
try {
  w=window.open("index2.html",'popup');
  }
catch(err) {
  document.write("Bloqueur de popup");
  }

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page
 
 



Votre avis sur cette publicité