window.opener.location.reload();
С родительского окна открываетися дочернее
но в данном случаи в дочернем при отправке формы окно НЕ ЗАКРЫВАЕТСЯ для закрытия окна есть специальная кнопа "закрыть" которая имеет вид <input type="button" value="Закрыть" onClick="window.opener.location.reload();window.cl ose();"> если закрывать сразу кнопкой - то родительское окно обновляется, но если сохранить форму и нажать закрыть обновления не происходит. Я так подозреваю что после обновления родитель становится вовсе не родителем. Вопрос как заставить обновлять страницу родителя после закрытия дочернего элемента при любых раскладах - было сохранение формы в дочернем элементе/не было/было 5-ть раз и т.д. |
Gigo,
1. На родителе ставим таймер(setInterval при открытии дочернего Окна), 2. При закрытии дочернего окна ставим(из дочернего окна) кук, что окно закрылось 3. Родитель по таймеру(setInterval) тестит куки - при нахождениии кука - стирает его и обновляецо |
идея, а менее извращенный вариант?
переназначить родителя вручную обратиться к странице родительской через какойто атрибут (по аналогии с фреймами) может глупости пишу, но в JS не силен |
Gigo,
Куки ссылка => http://javascript.ru/forum/misc/2942...tml#post184541 setInterval = ccылка => http://javascript.ru/setInterval В принципе скрипт в четыре строки (не считая coocie функции |
почти получилось
есть функции (обе рабочие) function setCookie (name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } function getCookie(name) { var cookie = " " + document.cookie; var search = " " + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) { offset = cookie.indexOf(search); if (offset != -1) { offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) { end = cookie.length; } setStr = unescape(cookie.substring(offset, end)); } } return(setStr); } родительское окно function test_open_window(){ op = getCookie("open"); if(op==0){ setCookie("open", "1"); window.location.reload(); } } setInterval(test_open_window, 1000); дочернее окно в хеаде setCookie("open", "1"); в конце <input type="button" value="Закрыть" onClick="setCookie('open','0');alert(getCookie('op en'));window.close();"> Если сразу нажимаю закрыть значение меняется на 0 и обновление происходит, если сохраняю форму и закрываю окно значение кука = 1 т.е. setCookie('open','0') не работает - почему? |
Gigo,
Нун ставить время хранение - иначе куки на сесию, до закрытия окон setCookie("open",1,2*60*60*1000); .//воть на два часа//цифры можно без кавычек т.е. setCookie('open','0') не работает - почему? 0 и false - не работают - така фукция - полная версия длинная возьмите 1 и 2 стирание кука setCookie("open",true,-1); Все таки лучше ставить кук и стирать cтавим setCookie("open",true,2*60*60*1000); стираем setCookie("open",true,-1); Проверка наличия кука if(getCookie("open")) { //Тут что-то; } |
всеравно херня какая то происходит
кук не удаляется function close_window(){ setCookie("open",true,-1); alert(getCookie("open")); window.close(); } возвращает true |
Со стиранием ошибся; Вроде так: <script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} //Cтавим кук setcookie("open",true,2*60*60*1000); alert("Cтавим кук=>"+getcookie("open")); //стираем Кук setcookie("open",'false',-23); alert("стираем и читаем Кук=>"+getcookie("open")); </script> |
нашел где грабля была
скрипт все правильно работает. дочернее окно отрывается как http://... а при пересохранении http://www... - считает как разные домены и пипец если подскажешь как на весь домен куки поставить буду оч. благодарен, а то мозг начинает шалить, пойду спать |
Gigo,
Воть Тады более полный Вариант куков с доменом => //================= БИБЛИОТЕКА КУКИСОВ ============== // // Библиотека для кукисов function setCookie(name, value, expires, path, domain, secure) { if (!name || !value) return false; //alert("HELLO>>"+value) var today = new Date(); today.setTime( today.getTime() ); var expires_date = new Date( today.getTime() + (expires) ); var str = encodeURIComponent(name) + '=' + encodeURIComponent(value); if (expires) str += '; expires=' + expires_date.toGMTString(); if (path) str += '; path=' + path; if (domain) str += '; domain=' + domain; if (secure) str += '; secure'; document.cookie = str; return true; } function getCookie(name) { name= encodeURIComponent(name) var pattern = "(?:; )?" + name + "=([^;]*);?"; var regexp = new RegExp(pattern,"mg"); if (regexp.test(document.cookie)) return decodeURIComponent(RegExp["$1"]); return false } function deleteCookie( name, path, domain ) { if ( getCookie( name ) ) name= encodeURIComponent(name);document.cookie = name + '=' + ( ( path ) ? ';path=' + path : '') + ( ( domain ) ? ';domain=' + domain : '' ) + ';expires=Thu, 01-Jan-1970 00:00:01 GMT'; } //End//Библиотека Кукисов //===================================================================// |
Часовой пояс GMT +3, время: 16:13. |