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, время: 13:05. |