1

J'ai lu beaucoup de messages concernant la détection de bloqueur de popup par le code javascript, mais je n'ai toujours pas été en mesure de trouver une réponse au problème que je suis maintenant. Le problème est lorsque l'URL cible est un site Web externe, mon navigateur (IE8) empêche l'accès à l'objet window, ou en d'autres termes le code javascript window.open() renvoie null bien que le popup soit autorisé à s'ouvrir. En revanche, pour une page locale du site, javascript renvoie l'objet window.Popup bloqueur IE8 et les zones de sécurité

Il semble donc qu'il existe des paramètres de sécurité quelque part dans Internet Options qui empêchent de saisir le gestionnaire de la fenêtre ouverte; Dans ce cas, quelqu'un sait-il comment le détecter avec javascript?

Le code que je utilise est la suivante et il ne peut pas détecter cette situation:

var popup = window.open("http://www.externalsite.com&param1=value1", "_blank", ""); 
if (!popup) { 
alert('Cannot preview this page because pop-ups are blocked by your browser'); 
} else { 
if (popup != null) { popup.focus(); } 
} 

Répondre

1

Si vous ouvrez une fenêtre qui croise les niveaux Zones et Intégrité (par exemple, page intranet) ing at Medium ouvre une page Internet à faible débit; ou un site Internet en cours d'exécution sur Low ouvre un site Trusted s'exécutant à moyen) cela peut arriver. Cela n'a rien à voir avec le bloqueur de popups.

1

Le code suivant fonctionne quand je l'ai testé dans IE8

function detectPopupBlocker() { 
     var test = window.open(null,"","width=100,height=100"); 
     try { 
       test.close(); 
       alert("Pop-ups not blocked."); 
     } catch (e) { 
       alert("Pop-ups blocked."); 
     } 
} 

// Created by: Simon Willison 
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent 
function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
    window.onload = func; 
    } else { 
    window.onload = function() { 
     if (oldonload) { 
     oldonload(); 
     } 
     func(); 
    } 
    } 
} 

addLoadEvent(detectPopupBlocker); 

code trouvé sur http://javascript.internet.com/snippets/popup-blocker-detection-2.html pas faite par Nick

Questions connexes