Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.11.2011, 01:01
Новичок на форуме
Отправить личное сообщение для dzhigora Посмотреть профиль Найти все сообщения от dzhigora
 
Регистрация: 01.11.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, подскажите пожалуста, где я ошибся. Заранее благодарен за ответ.
Ответить с цитированием
  #2 (permalink)  
Старый 01.11.2011, 01:35
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от dzhigora
Address[0]="http://index1.html"
Потому что здесь вы пытаетесь перейти на сайт index1.html. Уберите "http://".

И вообще, поизучайте javascript ещё. У вас неплохо получится. Здесь много устаревшего и неправильного, но это вина того, кто писал оригинальный код)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 01.11.2011, 01:39
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от nasqad
new Array() - плохо, // []
Если уж на то пошло, то и document.write очень нехорошо!

Сообщение от nasqad
--image.length
Дурной, штоле? Уменьшение св-ва length массива влечёт за собой уменьшение количества элементов в массиве.

arr= [1, 2, 3];
--arr.length;
alert(arr);
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2011, 16:49
Новичок на форуме
Отправить личное сообщение для dzhigora Посмотреть профиль Найти все сообщения от dzhigora
 
Регистрация: 01.11.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>

Всем, большое спасибо, за содействие в решении проблемы.
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2011, 16:57
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 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 и [].
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 02.11.2011 в 17:00.
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2012, 09:36
Новичок на форуме
Отправить личное сообщение для shukov Посмотреть профиль Найти все сообщения от shukov
 
Регистрация: 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>
Ответить с цитированием
  #7 (permalink)  
Старый 30.09.2012, 00:44
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

shukov, а поста постарше вы не нашли?))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 13:13
Срабатывание скрипта при загрузке страницы bormax Общие вопросы Javascript 3 03.04.2008 09:57