Да, просто замени весь шаблон на этот:
|

31.10.2011, 23:01
|
|
Новичок на форуме
|
|
Регистрация: 31.10.2011
Сообщений: 2
|
|
|
Скрипт случайного выбора при загрузке страницы
Подскажите, пожалуйста.
Нашел скрипт
<script language="javascript">
<!--
var a=Math.round(Math.random()*3)
//это число должно совпадать с максимальным индексом таблицы изображений
image = new Array();
image[0]="img00001.jpg"
image[1]="img00002.jpg"
image[2]="img00003.jpg"
image[3]="img00004.jpg"
//с максимальным индексом image[..] совпадает число, на которое умножаем вверху
document.write ("<img src="+image[a]+">");
//-->
</script>
Но возникла необходимость привязать к случайному изображению заданую ссылку, скрипт переписал
<script language="javascript">
<!--
var a=Math.round(Math.random()*31)
//это число должно совпадать с максимальным индексом таблицы изображений
image = new Array();
image[0]="01.jpg"
image[1]="02.jpg"
image[2]="03.jpg"
image[3]="04.jpg"
Address = new Array();
Address[0]="http://index1.html"
Address[1]="http://index2.html"
Address[2]="http://index3.html"
Address[3]="http://index4.html"
//с максимальным индексом image[..] совпадает число, на которое умножаем вверху
document.write ("<a href='"+Address[a]+"'><img src='"+Image[a]+"'></a>");
//-->
</script>
Но по какой-то причине не формируется ссылка на изображение, file://localhost/undefined, подскажите пожалуста, где я ошибся. Заранее благодарен за ответ.
|
|

31.10.2011, 23:35
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
|
Сообщение от dzhigora
|
|
Address[0]="http://index1.html"
|
Потому что здесь вы пытаетесь перейти на сайт index1.html. Уберите "http://".
И вообще, поизучайте javascript ещё. У вас неплохо получится. Здесь много устаревшего и неправильного, но это вина того, кто писал оригинальный код)
|
|

31.10.2011, 23:39
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
|
Сообщение от nasqad
|
|
new Array() - плохо, // []
|
Если уж на то пошло, то и document.write очень нехорошо!
|
Сообщение от nasqad
|
|
--image.length
|
Дурной, штоле? Уменьшение св-ва length массива влечёт за собой уменьшение количества элементов в массиве.
arr= [1, 2, 3];
--arr.length;
alert(arr);
|
|

02.11.2011, 14:49
|
|
Новичок на форуме
|
|
Регистрация: 31.10.2011
Сообщений: 2
|
|
Может кому-то будет интетересен такой вариант решения задания
<script language="javascript">
<!--
var Image=new Array("00.jpg","01.jpg","02.jpg","03.jpg");
var Address=new Array("index.html","index1.html","index2.htm","index3.html");
var i=Math.round(Math.random()*3);
document.write("<a href='"+Address[i]+"' target='_blank'><img src='"+Image[i]+"'></a>");
//-->
</script>
Всем, большое спасибо, за содействие в решении проблемы.
|
|

02.11.2011, 14:57
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
nasqad писал же: не стоит использовать new Array().
Лучше так:
var Image=["00.jpg","01.jpg","02.jpg","03.jpg"]
Между двумя этими методами есть разница - в первом случае вы создаёте объект Array, а во втором случае вы создаёте массив. Пример:
bool1= false;
bool2= new Boolean(false);
alert(!!bool1); // приводим переменные к логическому значению
alert(!!bool2);
Примерно такая же разница и между new Array и [].
Последний раз редактировалось trikadin, 02.11.2011 в 15:00.
|
|

29.09.2012, 08:36
|
|
Новичок на форуме
|
|
Регистрация: 29.09.2012
Сообщений: 1
|
|
Лучше так
<script>
var Image = [
['00.jpg','index.html'],
['01.jpg','index1.html'],
['02.jpg','index2.htm'],
['03.jpg','index3.html']
]
var i=Math.round(Math.random()*3);
document.write("<a href='"+Image[i][1]+"' target='_blank'><img src='"+Image[i][0]+"'></a>");
</script>
|
|

29.09.2012, 23:44
|
 |
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
|
shukov, а поста постарше вы не нашли?))
|
|
|
|