может подойдет такой способ:
открывать пустое окно - повторный вызов open с пустым url и тем же target не делает reload дочернего окна, но возвращает ссылку на него.
проверять наличие в нем определенной переменной(флаг), если ее нет - менять location, иначе - просто использовать handle
if(w=window.open('','MYWINDOW','width=800,....'))
{
try
{
if(!w.exists)
w.location='http://some_url'; // в этой page устанавливаем флаг exists=1
else
w.someFunction();
}
catch(e){}
}
try/catch для перехвата Access Denied - можно и без него если domain не меняется