Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2880 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML/JS]Comment faire marcher le popup blocker sous FF?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML/JS]Comment faire marcher le popup blocker sous FF?

n°1461553
Yoyo@
Posté le 20-10-2006 à 16:36:29  profilanswer
 

Salut,
 
J'essaie de développer un bout de code Javascript qui permette, lorsque je cherche à ouvrir une fenêtre de type popup, et dans le cas où l'utilisateur dispose d'un filtre à popup, à ouvrir l'adresse dans la fenêtre principale à la place.
 
Cependant, j'ai un problème:
 
Je n'arive pas à activer le filtre à popup sous Firefox pour mes tests.
 
J'ai beau aller dans Tools=>Options et cocher "Block Popup Windows" et m'assurer que la liste "Allowed Sietes" est vide, mes popups ne sont jamais bloquées... Donc, je ne peux pas faire mes tests.
 
Par exemple, un tel code:


<html>
<body>
<a target="_blank" href="http://www.google.fr">Click Here</a>
</body>
</html>


 
ne déclenche pas le bloqueur de popup sous Firefox, alors qu'il le déclenche sous IE et Opera...
 
Comment ça se fait?

mood
Publicité
Posté le 20-10-2006 à 16:36:29  profilanswer
 

n°1461557
Sh@rdar
Ex-PhPéteur
Posté le 20-10-2006 à 16:41:45  profilanswer
 

:heink: c'est pas un pop up ça, c'est une nouvelle fenêtre qui s'ouvre quand on clique  
 
les pop up ça s'ouvre via window.open() et généralement celles qui sont bloquées sont celles qui s'ouvrent toutes seuls (la pub quoi)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1461565
Yoyo@
Posté le 20-10-2006 à 16:51:13  profilanswer
 

Cool, déjà, tu me sauves, j'arrives mieux à comprendre pourquoi Firefox ne les bloque pas... Par contre, si je fais ouvrir ma fenêtre au démarrage d'une première page, alors, là, effectivement, elle est bloquée par FF, je viens de tester...
 
Merci pour la précision, ça me rendait quelque peu fou, je ne comprenais pas...
 
Donc, pour en revenir à mon truc, il apparaît alors que Opera ou même IE bloquent ce genre de fenêtre ouverte sur click de l'utilisateur.
 
Donc, mon but est de créer un morceau de code JS qui permette, si la fenêtre additionnelle est bloquée, d'ouvrir l'URL dans la fenêtre principale.
 
Je pense que je vais trouver un truc qui marche sur Opera et IE. Mais comment être certain que ça marche sur tous les popup blockers du marché? (je ne peux quand même pas tous les tester...)

n°1461575
0x90
Posté le 20-10-2006 à 17:08:32  profilanswer
 

tu tente d'ouvrir la popup.
tu met dans la popup un code qui renvoie à la page principale "ok j'existe" (en js c'est simple à faire ca)
dans la principale, si t'as pas recut le message "ok j'existe" au bout d'un certain temps ( genre 1sec ) tu ouvre ta popup dans la page en cours.
 
Si jamais il a une connection qui rame _vraiment_ tu risque d'avoir la page ouverte des 2 cotés, mais ca me semble le moyen le plus pratique au 1er coup d'oeil.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1461585
Yoyo@
Posté le 20-10-2006 à 17:20:54  profilanswer
 

0x90 a écrit :

tu tente d'ouvrir la popup.
tu met dans la popup un code qui renvoie à la page principale "ok j'existe" (en js c'est simple à faire ca)
dans la principale, si t'as pas recut le message "ok j'existe" au bout d'un certain temps ( genre 1sec ) tu ouvre ta popup dans la page en cours.
 
Si jamais il a une connection qui rame _vraiment_ tu risque d'avoir la page ouverte des 2 cotés, mais ca me semble le moyen le plus pratique au 1er coup d'oeil.


 
Quand tu parles de demander à la fenêtre ouverte d'envoyer un message à la fenêtre principale, tu penses à par exemple recupérer , de la part de la popup, son window.opener, et de lui initialiser une variable, par ex, popupok, à 1? Et ensuite, à ma fenêtre principale, de tester la valeur de ccette variable 1 sec après l'ouverture?
 
Cette idée est pas mal, mais elle m'imposerait de modifier le code de toutes les pages cible qui peuvent être ouveres en popup... Trop de maintenance. D'autre part, cete méthode n'est utilisable que si j'ouvre des pages à moi en popup... Mais comment faire si je veux ouvrir google en popup?
 
Sinon, je suis en train d'expérimenter quelque peu, et il apparaît qu'avec IE et Firefox, lorsqu'une popup est bloquée, le window.open retourne un objet null. Donc, je peux déja faire un test sur cet objet retourné.
 
Le problème, c'est qu'avec Opera, un objet est retourné, popup bloquée ou pas... Donc, il faut queje trouve ensuite un test supplémentaire pour Opera...

n°1461627
Yoyo@
Posté le 20-10-2006 à 19:12:59  profilanswer
 

Bon, ça y est, j'ai trouvé une solution qui marche bien pour les trois browsers (IE, Firefox et Opéra).
En fait, comme je le dis plus haut, le pb avec Opera pour détecter si la popup a été ouverte, c'est que la méthode window.open retourne toujours un object window...Blocage ou pas blocage. Donc, je dois faire un traitement spécial avec Opera, je teste le Status qui vaut tantot null (fenêtre non ouverte), tantôt '' (fenêtre ouverte)
 
Ca marche à l'oeil.
 
Voici le code, pour ceux que ça intéresse...:
 

function openMain(url){
 var wndpopup = window.open(url,'_popup',  
'left=100,top=0,width=830,height=600,toolbar=0,resizable=1,scrollbars=1');
 if(wndpopup && navigator.appName.substring(0, 5).toLowerCase()=='opera'){  
  if(wndpopup.status == null){ //Dealing with Opera and popup blocked;
   window.location = url;
  }else{ //Dealing with Opera but popup not blocked;
   wndpopup.location = url;
   wndpopup.focus();
  }
 }else{ //other browsers
  if(wndpopup){
   wndpopup.focus();
  }else{
   window.location = url;
  }
 }
}



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [HTML/JS]Comment faire marcher le popup blocker sous FF?

 

Sujets relatifs
Intégrer une page dans une autre ( html/php)[php & javascript] image qui s'ouvre dans une popup
[CSS / HTML] Supprimer le Scrolling vertical IFRAME[HTML] Caracteres chelous en provenance de certains ordinateurs
Création d'un Moteur de rendu HTML ?!Est-il possible de supprimer un popup ?
Contenu html en fonction du browserExporter formulaire HTML en CSV pour Excel sans PHP
Besoin d'aide pour validation HTMLRécupérer le résumé d'une page html
Plus de sujets relatifs à : [HTML/JS]Comment faire marcher le popup blocker sous FF?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR