Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Открытие всех ссылок с текущей страницы
 
 автор: Port_Artur1   (23.11.2007 в 11:29)   письмо автору
 
 

Скрипт должен открыть все ссылки с текущей страницы в новых окнах, которые должны автоматически закрыться через 2- митуты. После завершения открытия окон текущее окно
должно закрыться.

Но что то не хочет работать, чувсвую что с setTimeout я явно перемудрил, но не по мойму что?

И
links[i].HTML
у меня тоже не вызывает доверия!


<script language="JavaScript1.2">
<!--
function extractlinks(){
var links=document.all.tags("A");
var total=links.length;
 var timeout = 12000;for (i=0;i<total-3;i++){
 tm = setTimeout('links[i].HTML,"","scrollbars=yes,toolbar=yes,location=yes,status=yes,resizable=yes")',timeout);
  setTimeout('tm.close()',60*1000);

}

self.opener.f(total); 
self.close();
}
//-->
</script>



Подскажите что не так?

   
 
 автор: yuk   (23.11.2007 в 12:23)   письмо автору
 
   для: Port_Artur1   (23.11.2007 в 11:29)
 

в setTimeout первым параметром должна быть функция, а у вас просто строка.

   
 
 автор: Port_Artur1   (23.11.2007 в 15:03)   письмо автору
 
   для: yuk   (23.11.2007 в 12:23)
 

А как должно быть правильно? Что то я никак не пойму подправьте пожалуйста!

   
 
 автор: Port_Artur1   (23.11.2007 в 15:33)   письмо автору
 
   для: Port_Artur1   (23.11.2007 в 15:03)
 

Почему то пытается открыть такую ссылку
http://xxxx.ru/links[i].HTML

как правильно написать


<script language="JavaScript1.2">
<!--
function extractlinks(){
var links=document.all.tags("A");
var total=links.length;
 var timeout = 12000;for (i=0;i<total-3;i++){
 tm = setTimeout('w=window.open("links[i].HTML","","scrollbars=yes,toolbar=yes,location=yes,status=yes,resizable=yes")',timeout); 
  setTimeout('tm.close()',60*1000);

}
}
//-->
</script>

   
 
 автор: yuk   (23.11.2007 в 16:17)   письмо автору
 
   для: Port_Artur1   (23.11.2007 в 15:33)
 

Потому что она так у вас и записана.
Посмотрел код, я бы сделал так:

<script>
var links=document.getElementsByTagName("A");
var total=links.length;
var wins=new Array(total);
for(i=0;i<total;i++){
    wins[i]=window.open(links[i].href,"win"+i,"scrollbars=yes,toolbar=yes,location=yes,status=yes,resizable=yes");
    setTimeout("wins["+i+"].close()",120000);
}
setTimeout('window.close()',120000);
</script>

Правда, основное окно закроется после остальных. Если оно закроется после их открытия, то кто же дополнительные окна будет закрывать? В таком случае если дополнительные окна ваши, то можно в них записать функцию закрытия через 2 минуты.

   
 
 автор: Port_Artur1   (23.11.2007 в 16:35)   письмо автору
 
   для: yuk   (23.11.2007 в 16:17)
 

Пишет что ошибка в скрипте!

   
 
 автор: yuk   (23.11.2007 в 16:51)   письмо автору
 
   для: Port_Artur1   (23.11.2007 в 16:35)
 

Странно, у меня работает.
Может вы не туда его вставляете?
Надо в самом конце body.

   
 
 автор: Port_Artur1   (23.11.2007 в 19:07)   письмо автору
 
   для: yuk   (23.11.2007 в 16:51)
 

Да всё работает

А почему только если в конце поставить?

но как сделать чтобы окна начались открывались через 2 минуты с момента открытия основного окна и с промежутком 4-5- секунд ну очень надо подскажите!!!!!!!!!!

А то открываются сразу и подряд все!!!

   
 
 автор: yuk   (23.11.2007 в 21:28)   письмо автору
 
   для: Port_Artur1   (23.11.2007 в 19:07)
 

Можно так:

<script> 
var links=document.getElementsByTagName("A");
var total=links.length; 
var wins=new Array(total);
var closeinterval=10000;
function winopen(i){
    wins[i]=window.open(links[i].href,"win"+i,"scrollbars=yes,toolbar=yes,location=yes,status=yes,resizable=yes"); 
    setTimeout("wins["+i+"].close()",closeinterval);
}
var openinterval=3000;
for(j=0;j<total;j++){ 
    setTimeout("winopen("+j+")",openinterval);
    openinterval+=openinterval;

setTimeout('window.close()',openinterval+closeinterval); 
</script>

А на счет того что в конце - можно и в начале, но для этого надо поместить все в функцию, а функцию все-равно придется вызывать в конце, после того как будет отображено все содержимое окна. Ну или на onload() повесить.

   
 
 автор: Port_Artur1   (24.11.2007 в 21:45)   письмо автору
 
   для: yuk   (23.11.2007 в 21:28)
 

У вас всё работает

Ноя взял смелость переделать этот скрипт так чтобы окна открывались не подряд а через 10 секунд - пишет что ошибка

ГДЕ!!!!!!!!!


<script> 
var v=-1;
var n=0; 
var openinterval=10000;
var links=document.getElementsByTagName("A"); 
var total=links.length-1;  
var wins=new Array(total); 
var closeinterval=5000; 
function winopen(i){ 

    wins[i]=window.open(links[i].href,"win"+i,"scrollbars=yes,toolbar=yes,location=yes,status=yes,resizable=yes"); 
    document.getElementById('result').innerHTML = total;
    setTimeout("wins["+i+"].close()",closeinterval); 

function winclose()
{   self.opener.f(n); 
    window.close();
}
function opens(t){
  t++;  n++;
  if (t==total) {setTimeout("winclose()",20000}
  else{
   winopen1(t);
   setTimeout("winopen("+t+")",openinterval); 
}
}

function opens1(f){
   f++;  n++;
  if (f==total) {setTimeout("winclose()",20000); }
  else{
   winopen(f);
   setTimeout("winopen("+f+")",openinterval); 
}
 }



opens(v);


</script>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования