Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

потомки в java script

346
11 июля 2005 года
Новая папка
256 / / 24.12.2004
У меня есть главное окно. С него можно пооткрывать много других поп-ап окон. Как мне сделать так, чтобы при закрытиии окна родителя (главного окна) закрывались все окна потомки?
287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
Закидывать в родительском окне ссылки на объекты дочерних окон (эт кторые на window.open возвращаются) в массив, а при закрытии его (родительского окна) перебирать этот массив и закрывать все окна связанные с перебираемыми значениями.

при закрытии окна (покидании страницы и т.п.) вызывается onunload, если вообще вызывается :D
346
12 июля 2005 года
Новая папка
256 / / 24.12.2004
Цитата:
Originally posted by Shiizoo
Закидывать в родительском окне ссылки на объекты дочерних окон (эт кторые на window.open возвращаются) в массив, а при закрытии его (родительского окна) перебирать этот массив и закрывать все окна связанные с перебираемыми значениями.

при закрытии окна (покидании страницы и т.п.) вызывается onunload, если вообще вызывается :D



Я забыл предупредить, что таким вариантом я уже пользуюсь)
Но хотелось бы без закидывания в массив. Может как-то пролистывать всех потомков окна, типа как в DOM.

287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
=) Может я ошибаюсь, но насколько я помню объект window не входит в DOM. Потому как, DOM - Document object model, а document в свою очередь - дочерний элемент window. Это DOM LVL 0, то есть недокументированный стандарт. Юзай массив, не вижу в этом никаких минусов.
346
12 июля 2005 года
Новая папка
256 / / 24.12.2004
Цитата:
Originally posted by Shiizoo
=) Может я ошибаюсь, но насколько я помню объект window не входит в DOM. Потому как, DOM - Document object model, а document в свою очередь - дочерний элемент window. Это DOM LVL 0, то есть недокументированный стандарт. Юзай массив, не вижу в этом никаких минусов.



На сколько я помню, никаких сомнений, что window - это не часть DOM, я не выдвегал)
Допустим, я размещу страницу на шаровом хосте, на котором до фига баннеров и поп-апов. Там поп-ап окна я не смогу кинуть в массив. Вот те и минус.

346
12 июля 2005 года
Новая папка
256 / / 24.12.2004
Просто в ДОМе тебе даже не обязательно знать сколько и какие потомки существуют, чтобы пробежаться по ним. Поэтому я и привёл его в пример.
Вот я как раз и не знаю сколько и какие окна я буду открывать во время работы страницы.
287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
:/ Я так подумал.. И мы решили.. Такое поведение браузеров было бы ничем иным, а нарушением конфидециальности. Листаешь ты значит порево, параллельно заходишь на любимый форум, открывающий popup.. А этот попап перебирает все открытые окна браузера, берет их заголовки, содержимое и составляет по тебе досье. А в конце месяца их публикуют и ты попадаешь в список самых развратных и извращенных форумчан :DDDD

Ой весело бы было;) Must be! Как найдешь решение, обязательно чиркни сюда=)

..Гм, или я не в ту сторону подумал. :? Как вариант, можно было бы попробывать подменить open() в window прототипе, но.. Я не знаю как вызывать из подмененного метода оригинальный и это необходимо сделать до того, как эти самые window'ы откроются;)

Думаю не такие лоси работают с халявными хостингами и такие моменты они предусмотрели... Можно было бы и вовсе при первой же возможности обнулить window.open метод, то бишь сделаеть его null'ом. А потом вернуть ему функциональность, но уже после нежелательных включений. Ой не знаю, не знаю... :D
287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
Потыкал пальцем вариант прототипов. Не пашет. Почему? ПтАму шТА, видимо, window штука вообще крайне приблудная, хотя на moz'оргах всяких попытки такого вот юзания window были. Те не менее, так работает:

 
Код:
<script type="text/javascript">window.open = function() { return window; }</script>
<html><head><title></title>
<script type="text/javascript">
    window.open("http://www.google.ru");
</script></head><body></body></html>


Но, больно просто:D Думаю несработает;)
287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
В общем.. ТЗ.. В коде:
Код:
<script type="text/javascript">
window.open = function(param1,param2...) {
  if (
    typeof window.chldWins == 'undefined' ||
    window.chldWins === null ||
    !(window.chldWins instanceof Array)
  ) window.chldWins = [];  
  window.chldWins[window.chldWins.length] = window.open(param1,param2...);
}
</script>
<html><head><title></title>
<script type="text/javascript">
    window.open("http://safgasgasga");
</script></head><body></body></html>

научить поддельный open вызывать настоящий window.open.
287
12 июля 2005 года
Shiizoo
958 / / 14.03.2004
Код:
<script type="text/javascript">
window.old_open = window.open;
window.open = function(parm1,parm2,parm3,parm4) {
  if (
    typeof window.chldWins == 'undefined' ||
    window.chldWins === null ||
    !(window.chldWins instanceof Array)
  ) window.chldWins = [];
  window.chldWins[window.chldWins.length] =
  (typeof parm1 == 'undefined') ? window.old_open() :
    (typeof parm2 == 'undefined') ? window.old_open(parm1) :
        (typeof parm3 == 'undefined') ? window.old_open(parm1,parm2) :
            (typeof parm4 == 'undefined') ? window.old_open(parm1,parm2,parm3) :
                window.old_open(parm1,parm2,parm3,parm4);
}
</script>
<html><head><title></title>
<script type="text/javascript">
    window.open("http://www.google.ru");
    window.open("http://www.ya.ru");
    alert('This window have ' + window.chldWins.length + ' child windows');
</script></head><body></body></html>


Попробуй так. Оказывается подменить метод проще, чем я думал. Ну раз все так просто, значь халявные хостинги такие конструкции фильтруют, хотя если все это заэнкодить или еще что-нить такое извращенское намутить, то может и получиться. DUNNO!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог