Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2012, 13:49
Новичок на форуме
Отправить личное сообщение для Gigo Посмотреть профиль Найти все сообщения от Gigo
 
Регистрация: 17.03.2011
Сообщений: 9

window.opener.location.reload();
С родительского окна открываетися дочернее
но в данном случаи в дочернем при отправке формы окно НЕ ЗАКРЫВАЕТСЯ
для закрытия окна есть специальная кнопа "закрыть"
которая имеет вид <input type="button" value="Закрыть" onClick="window.opener.location.reload();window.cl ose();">
если закрывать сразу кнопкой - то родительское окно обновляется, но если сохранить форму и нажать закрыть обновления не происходит. Я так подозреваю что после обновления родитель становится вовсе не родителем.
Вопрос как заставить обновлять страницу родителя после закрытия дочернего элемента при любых раскладах - было сохранение формы в дочернем элементе/не было/было 5-ть раз и т.д.
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2012, 14:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Gigo,
1. На родителе ставим таймер(setInterval при открытии дочернего Окна),
2. При закрытии дочернего окна ставим(из дочернего окна) кук, что окно закрылось
3. Родитель по таймеру(setInterval) тестит куки - при нахождениии кука - стирает его и обновляецо

Последний раз редактировалось Deff, 20.08.2012 в 14:47.
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2012, 15:16
Новичок на форуме
Отправить личное сообщение для Gigo Посмотреть профиль Найти все сообщения от Gigo
 
Регистрация: 17.03.2011
Сообщений: 9

идея, а менее извращенный вариант?
переназначить родителя вручную
обратиться к странице родительской через какойто атрибут (по аналогии с фреймами)
может глупости пишу, но в JS не силен
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2012, 15:26
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Gigo,
Куки ссылка => Как сделать,чтобы cookie удалялась через сутки после создания?
setInterval = ccылка => http://javascript.ru/setInterval

В принципе скрипт в четыре строки (не считая coocie функции
Ответить с цитированием
  #5 (permalink)  
Старый 20.08.2012, 15:54
Новичок на форуме
Отправить личное сообщение для Gigo Посмотреть профиль Найти все сообщения от Gigo
 
Регистрация: 17.03.2011
Сообщений: 9

почти получилось
есть функции (обе рабочие)
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') не работает - почему?
Ответить с цитированием
  #6 (permalink)  
Старый 20.08.2012, 16:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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")) {
//Тут что-то;
}

Последний раз редактировалось Deff, 20.08.2012 в 16:25.
Ответить с цитированием
  #7 (permalink)  
Старый 20.08.2012, 17:09
Новичок на форуме
Отправить личное сообщение для Gigo Посмотреть профиль Найти все сообщения от Gigo
 
Регистрация: 17.03.2011
Сообщений: 9

всеравно херня какая то происходит
кук не удаляется
function close_window(){
setCookie("open",true,-1);
alert(getCookie("open"));
window.close();
}
возвращает true
Ответить с цитированием
  #8 (permalink)  
Старый 20.08.2012, 17:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

setсookie("open",true,-20); Так - тож не удаляется ?
Со стиранием ошибся; Вроде так:
<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>

Последний раз редактировалось Deff, 20.08.2012 в 17:49.
Ответить с цитированием
  #9 (permalink)  
Старый 21.08.2012, 01:43
Новичок на форуме
Отправить личное сообщение для Gigo Посмотреть профиль Найти все сообщения от Gigo
 
Регистрация: 17.03.2011
Сообщений: 9

нашел где грабля была
скрипт все правильно работает.
дочернее окно отрывается как http://...
а при пересохранении http://www... - считает как разные домены и пипец
если подскажешь как на весь домен куки поставить буду оч. благодарен, а то мозг начинает шалить, пойду спать
Ответить с цитированием
  #10 (permalink)  
Старый 21.08.2012, 01:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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//Библиотека Кукисов

//===================================================================//

Последний раз редактировалось Deff, 21.08.2012 в 01:52.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск