Non ho provato concretamente, ma penso dovrebbe funzionare. In pratica, quando tu apri la finestra in automatico, invece di usare semplicemente window.open(), crea una variabile a cui assegni come valore la finestra che apri, in questo modo:
codice:
var popwin = window.open(.....);
self.focus();
Poi, al link che permette di aprire la popunder manualmente, assegni una funzione che controlla l'esistenza della variabile:
codice:
Apri popunder
Codice della funzione JavaScript:
function Controlla() {
if (!popwin) {
window.open(.....);
}
else {
popwin.focus();
}
}
Se la finestra si apre automaticamente perché non è bloccata (e quindi la variabile popwin esiste), quando si clicca sul link la finestra già esistente riceverà il focus. Se al contrario la popunder è bloccata, la funzione rileverà che la variabile popwin non esiste e quindi la aprirà con un normale window.open(). L'unica cosa di cui non sono sicuro, non avendo provato, è se bisogna per forza usare la parola chiave "var" o è possibile farne a meno. Se non erro (è un po' che non uso JavaScript), indicando una variabile esterna alle funzioni con var, questa è globale e può essere letta da tutte le funzioni esistenti, mentre senza "var" diventa "locale" e quindi le funzioni non possono leggerla. Al limite, fai qualche prova...