Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.248.208] |
|
Сообщ.
#1
,
|
|
|
Привет всем. Вот какая есть проблемка.
Есть фреймовая страница. В ней содержится 2 фрейма. 2-ой (нижний) фрейм является управляющим для 1-ого фрейма. Во втором находится список страниц для отображения, а так же прописан javascript код, который проверяет, загрузилась ли до конца страница, находящаяся в 1-ом фрейме. Если она загрузилась, то 1-ый фрейм загружает следующую страницу списка, а 2-ой фрейм перегружает сам себя. Если страница в 1-ом фрейме не загрузилась до конца, то функция проверки загрузки страницы перегружается и делает проверку снова. Вроде бы всё понятно и кажется чего тут делать. Однако после загрузки 2-ой страницы, появляется глюк, что страницы зацикливаются... Прилагаю "сырцы" Кто знает в чём глюк, ткните мне пальцем, уже третьи сутки над этой проблемой колбашусь, никак не могу решить. Фреймовая главная страница index.php: <html> <head> <title>Title</title> </head> <frameset rows="*,30" framespacing=0 border=0 frameborder=0> <frame name='fr_up' src='http://www.anysite.com/1.php' marginwidth=0 marginheight=0 scrolling=auto frameborder=0 noresize> <frame name='fr_down' src='http://www.anysite.com/down.php' marginwidth=0 marginheight=0 scrolling=no frameborder=0 noresize> </frameset> <body> </body> </html> <?php $list_pages[]="'http://www.anysite.com/1.php'"; $list_pages[]="'http://www.anysite.com/2.php'"; $list_pages[]="'http://www.anysite.com/3.php'"; $list_pages[]="'http://www.anysite.com/4.php'"; $list_pages[]="'http://www.anysite.com/5.php'"; $list_pages[]="'http://www.anysite.com/6.php'"; $all++; if ($all>5) { $all=0; } $url=$list_pages[$all]; ?> <html> <head> <title>Down</title> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <script language="javascript"> var start; var end; var cd_; var any_url_; function CountDown(any_url_) { start=-1; end=30; UpRepeat(any_url_); } function UpRepeat(any_url_){ start++; if(start>end){ start=-1; } if (top.frames['fr_up'].document.readyState=="complete"){ window.parent.frames['fr_up'].document.location.href=any_url_; document.location.reload(); } else { cd_=setTimeout("UpRepeat(any_url_)",1000); } } </script> </head> <body onLoad=UpRepeat(<?=$url?>)> <table width='100%' height=30 border=0 cellpadding=0 cellspacing=0> <form name=form method=post action='down.php'> <tr> <td><input type=submit name=submit value='Следующая'></td> <td>Показано страниц <input type=text name=all value=<?=$all?> class=read_text readonly></td> </tr> </form> </table> </body> </html> |
Сообщ.
#2
,
|
|
|
document.location.reload(); Не совсем понятно, зачем нужна данная строчка? А не лучше ли будет постить форму? В данном случае в начале скрипта необходимо получать $all: $all=$_POST["all"]; И еще. Для чего нужна следующая функция? function CountDown(any_url_) { start=-1; end=30; UpRepeat(any_url_); } |
Сообщ.
#3
,
|
|
|
Да всё правильно было сделано, да не до делано Я уже разобрался в чём дело. Нужно слегка модифицировать функции в странице down.php:
<?php ... $a_++; $all_++; if ($a_>14) { $a_=0; } $url=$list_pages[$a_].",".$a_.",".$all_; ?> ... var page_num_; var page_all_; var url_next_; //Вместо any_url function CountDown(url_next_,page_num_,page_all_) { start=-1; end=30; if(UpRepeat()){ window.parent.frames['fr_up'].document.location.href=url_next_; document.location.href='http://www.anysite.com/fr_down.php?a_='+page_num_+'&all_='+page_all_; } } ... if(start>end){ return false; } if (top.frames['fr_up'].document.readyState=="complete"){ return true; } else { ur_=setTimeout("UpRepeat()",1000); } ... |
Сообщ.
#4
,
|
|
|
Вопрос не по теме:
Pattern®, ты из Магадана что ли? |
Сообщ.
#5
,
|
|
|
_XAV,
Приватом сложно спровить было ? |