Как можно проверить заблокировано ли окно при использовании window.open? 
var win = window.open('url');
if(!win) { //В хроме и в опере всегда возвращает объект window 
// do
}
А если так сделать, то в хроме определяет блокировку, но не в опере.
var win = window.open('url');
setTimeout(function () {
   if (!win || win.closed || parseInt(win.innerWidth, 10) == 0 ) {
                    // blocked
   }
}, 300);
Какие ещё варианты есть?