|
|
|
| Скрипт должен открыть все ссылки с текущей страницы в новых окнах, которые должны автоматически закрыться через 2- митуты. После завершения открытия окон текущее окно
должно закрыться.
Но что то не хочет работать, чувсвую что с setTimeout я явно перемудрил, но не по мойму что?
И у меня тоже не вызывает доверия!
<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>
|
Подскажите что не так? | |
|
|
|
|
|
|
|
для: Port_Artur1
(23.11.2007 в 11:29)
| | в setTimeout первым параметром должна быть функция, а у вас просто строка. | |
|
|
|
|
|
|
|
для: yuk
(23.11.2007 в 12:23)
| | А как должно быть правильно? Что то я никак не пойму подправьте пожалуйста! | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: 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 минуты. | |
|
|
|
|
|
|
|
для: yuk
(23.11.2007 в 16:17)
| | Пишет что ошибка в скрипте! | |
|
|
|
|
|
|
|
для: Port_Artur1
(23.11.2007 в 16:35)
| | Странно, у меня работает.
Может вы не туда его вставляете?
Надо в самом конце body. | |
|
|
|
|
|
|
|
для: yuk
(23.11.2007 в 16:51)
| | Да всё работает
А почему только если в конце поставить?
но как сделать чтобы окна начались открывались через 2 минуты с момента открытия основного окна и с промежутком 4-5- секунд ну очень надо подскажите!!!!!!!!!!
А то открываются сразу и подряд все!!! | |
|
|
|
|
|
|
|
для: 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() повесить. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|