Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   случайная ссылка в javascript (https://javascript.ru/forum/css-html/29390-sluchajjnaya-ssylka-v-javascript.html)

Jakob 26.06.2012 09:33

случайная ссылка в javascript
 
У меня есть скрипт, который может открывать случайные ссылки, но ссылок он может открыть всего 4, если дописываю больше, то страница вообще никуда не переадресовывает. Что сделать чтобы скрипт читал больше ссылок?
<html> 
<head> 
<script type="text/javascript"> 

var Links = [ 
{ url: "http://fradw.narod2.ru/perv.html", freq: 33 }, // Perv 
{ url: "http://fradw.narod2.ru/vtor.html", freq: 33 }, // Vtor
{ url: "http://fradw.narod2.ru/tret.html", freq: 33 }, // Tret
{ url: "http://fradw.narod2.ru/chet.html", freq: 33 } // Chet
]; 

onload = function () { 

var Range = 0; 
for (var i=0; i<Links.length; i++) Range += Links[ i ].freq; 
var Random = Math.floor(Math.random()*Range); 

for (var i=0; i<Links.length; i++) { 
if (Random < Links[ i ].freq) break; 
Random -= Links[ i ].freq; 
} 

location.href = Links[ i ].url; 
} 

</script> 
</head> 
<body> 
</body> 
</html>

ksa 26.06.2012 11:15

Цитата:

Сообщение от Jakob
У меня есть скрипт, который может открывать случайные ссылки

А для чего все эти циклы в нем?

bot87 26.06.2012 11:31

В чем суть скрипта?Чего вы добиваетесь?
<script>
 
var Links = [
"http://fradw.narod2.ru/perv.html",  
"http://fradw.narod2.ru/vtor.html",  
 "http://fradw.narod2.ru/tret.html", 
 "http://fradw.narod2.ru/chet.html" 
];
 
window.onload = function () {
 
rand=Math.floor(Math.random()*4);

alert(rand)
location.href = Links[rand];
}
 
</script>

ksa 26.06.2012 11:40

Цитата:

Сообщение от bot87
rand=Math.floor(Math.random()*4);

А если вместо 4 подставить длину массива - получится желаемый скрипт ;)

bot87 26.06.2012 12:01

там 3.Не первый и не второй раз делаю постоянно эту ошибку

ksa 26.06.2012 13:40

Цитата:

Сообщение от bot87
там 3

Отнють!
Math.random()

Никогда не будет 1... А значит выражение
Math.floor(Math.random()*4)

Будет в пределах от 0 до 3 и вполне подходит для массива из 4-х элементов...


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