Script javascript: Controllo se browser ha blocco popup attivo

   difficoltà:  script script script script script

Script simili
26/1/2008


Come sappiamo tutti la maggior parte dei browser hanno ormai il blocco popup attivo di default e bloccano l'apertura automatica dei popup al caricamento della pagina.
In linea di massima però la maggior parte dei browser permette l'apertura del popup se questo avviene dopo una precisa azione dell'utente. Ad esempio il click su un link che esegue una funzione del tipo:

window.open

La sicurezza assoluta però che questo avvenga non possiamo averla. Questo perché capita che utenti possano avere utility o toolbar che hanno un proprio motore di blocco popup. Ad esempio la toolbar di Yahoo o quella di Google. O altri popup blocker.

Come assicurarsi quindi che all'esecuzione della funzione window.open all'utente si sia aperta la finestra popup?  Come agire nel caso questa finestra non venga aperta?

La soluzione che presento qui è molto semplice. Controllo se il popup è stato aperto. Nel caso sia stato bloccato do un'alternativa in modo tale che l'utente possa continuare la navigazione o per lo meno essere avvertito che a causa del blocco popup non ha potuto compiere un'operazione.

Controlliamo se il popup è stato aperto (mentre fa il controllo apre il popup), altrimenti apriamo una pagina alternativa.
function apri_popup(){
if(!window.open('popup.htm','popupname','width=270,height=270')){
location.href = "alternativa_popup.htm";
}
}
<a href="#" onclick="apri_popup()">Apri</a>

oppure se non apre il popup scriviamo che c'è stato un problema
function apri_popup(){
if(!window.open('popup.htm','popupname','width=270,height=270')){
document.write "Impossibile aprire popup. Disabilitare blocco popup";
}
}
<a href="#" onclick="apri_popup()">Apri</a>

Ci sono tante alternative possibili, ad esempio visualizzare un popunder, o un div nascosto.




Lascia un commento


Codice di controllo*:
Nome*:
Email/Link:
Testo*:
 
I campi contrassegnati con * sono obbligatori.