Вы можете попробовать добавить небольшую задержку, чтобы убедиться, что окно открыто
//win = null; <--useless
win = window.open('/url/to/link','tab');
if(win)window.focus();
else{
var timer = window.setTimeout( function(){ if(win)win.focus(); }, 100 );
}
В наши дни большинство людей избегают всплывающих окон и используют модальные слои.