 |
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");
}
|