На всякий случай вот код:
Код родителя:
var OnlineConsultantWindow = null;
var checkWindowOpenInterval = false;
//Функция, в которую приходит ссылка на дочернее окно в случает его(родительского окна) перезагрузки
function reloadCheckOpenWindow(target){
alert("Прием")
OnlineConsultantWindow = target;
if(checkWindowOpenInterval == false){
checkOpenWindow()
}
}
//Функция которая запускается как только загружается окно через window.open
function windowReady(myWindow){
OnlineConsultantWindow.myWindow(OnlineConsultantWindow)
}
//Функция срабатывающая если дочернее окно закрыли
function exitChatWindow(){
OnlineConsultantWindow = null;
clearInterval(checkWindowOpenInterval);
alert("Окно закрыто!");
}
//Функция, которая проверяет открыто ли окно или нет (так как в опере onunload не работает)
function checkOpenWindow(){
checkWindowOpenInterval = setInterval(function(){
if (OnlineConsultantWindow.closed) {
clearInterval(checkWindowOpenInterval);
checkWindowOpenInterval = false
exitChatWindow()
}
}, 200)
}
//Функция вызывающая window.open
$(".OnlineConsultantMax .expand").click(function () {
if(OnlineConsultantWindow != null){
OnlineConsultantWindow.focus();
}else{
var resizable = "resizable=1"
if($.browser.msie)
{
var resizable = "resizable=0"
}
var params = 'directories=0, menubar=0, toolbar=0, location=0, width=520,height=420,toolbar=1,scrollbars=1,'+resizable;
OnlineConsultantWindow = window.open("http://test.ru/tested/test396/chat.php", "ChatWindow", params)
if(OnlineConsultantWindow == null){
alert("Ошибка")
}
OnlineConsultantWindow.focus()
}
})
Код открывшегося окна:
var myWindowTarget
//При первой загрузке окна здесь схраняется ссылка на окно
function myWindow(target){
myWindowTarget = target
}
//Фнукция отправляет ссылку на себя, на случай если пользователь перезагрузит родительское окно
setInterval(function(){
alert("Проверка")
if(typeof window.opener.reloadCheckOpenWindow == 'function') {
alert("отправка")
window.opener.reloadCheckOpenWindow(myWindowTarget)
}
}, 200)
opener.windowReady(true)
Если перезагружать страницы, то все нормально работает, если перезагрузить браузер, то связь теряется, опера не видит window.opener.reloadCheckOpenWindow, типо такой функции нет...