Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JS вырвался на свободу (из фрейма) (https://javascript.ru/forum/misc/2656-js-vyrvalsya-na-svobodu-iz-frejjma.html)

artemiusgreat 27.01.2009 23:54

JS вырвался на свободу (из фрейма)
 
Доброе время суток.
Понимаю что тема звучит дико, я сам в шоке, но это факт :)
Вобщем, у меня во фрейм поключается файл index.php, в нем идет вперемешку все, включая JS. И все бы хорошо но в какой-то момент времени случается как-будто перезагрузка страницы и мой index.php оказывается не во фрейме а извне, т.е. там где раньше был фрем.
Подскажите, пожалуйста, что это может быть, location.href, document.write, parentNode или что?
Как скрипт может выгрузить содержимое из фрема на главную (родительскую) страницу?
При отключенном JS все спокойно.

Андрей Параничев 28.01.2009 00:38

Какой JavaScript код в вашем index.php? В особенности, нет ли там где-нибудь top.location.href?

artemiusgreat 29.01.2009 01:42

Ура-а-а!!! Спасибо огромное!
Вы были правы, вы мой герой.
Вот этот корень зла:
echo "<script language=\"JavaScript\"> top.location.replace('index.php?parameter=finished'); </script>";

Можете записывать меня на свои плантации, теперь я буду веками работать на Ваших рудниках :)

Такая вот чепухня оказалась в скрипте статистики WebStat (php-web-statistik.de) от наших немецких друзей.
Я бы спросил в чем проблема у них, вот только форум у них только на немецком :)

Оказалось дело было так:
1. грузиться index.php
2. в нем подключается cache_creator.php и выполняя свои манипуляции делает редирект на index.php?parameter=finished вышеописанным методом
3. а, собственно, обьект TOP используется здесь, т.к. этот cache_creator.php используется в некоторых PopUp окнах на сайте и т.о. он передает данные родительскому окну.
Для исправления проблемы достаточно было позаменять все обращения в этом скрипте top.location на parent.location чтобы обращения шли не к главному окну а просто к родительскому :)


Часовой пояс GMT +3, время: 05:20.