Ротатор баннеров

Не нашли подходящего раздела? Вам сюда!

Ротатор баннеров

Сообщение Алекс Король » 28 авг 2010, 19:29

Доброго времени суток!
Нужен код для создания на сайте ротатора flash баннеров. Я располагаю только скриптом выполненном в стиле JavaScript:

<SCRIPT LANGUAGE="JavaScript">
var how_many_ads = 3; //количество перебираемых баннеров
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
if (ad==1) {
url="...."; // вместо точек, адрес по которому попадает пользователь кликнув по баннеру 1
banner="....";//вместо точек, адрес самого рисунка баннера
width="125";
height="125";
}
if (ad==2) {
url="...."; //вместо точек, адрес по которому попадает пользователь кликнув по баннеру 2
banner="...";//вместо точе,к адрес самого рисунка баннера
width="125";
height="125";
}
if (ad==3) {
url="...."; //вместо точек, адрес по которому попадает пользователь кликнув по баннеру 3
banner="....";//вместо точек, адрес самого рисунка баннера
width="170";
height="70";
}
document.write('<center>');
document.write('<a href=\"' + url + '\" target=\"_blank\">');
document.write('<img src=\"' + banner + '\"width=')
document.write(width + ' height=' + height + ' ');
document.write('alt=\"' + alt + '\"border="0" ><br>');
document.write('<small>' + txt + '</small></a>');
document.write('</center>');
</SCRIPT>
Аватара пользователя
Алекс Король
 
Сообщения: 27
Зарегистрирован: 28 авг 2010, 19:03

Re: Ротатор баннеров

Сообщение Алексей » 28 авг 2010, 19:48

Предлагаю такой вариант:

<html>
<body>

<h1>При обновлении страницы флеш будет другим</h1>

<script>
var banner = new Array()

<!-- Первый флеш -->
banner[0] = new Array()
banner[0][0] = "http://www.webremeslo.ru/ban1.swf" // абсолютный путь до 1го флеша
banner[0][1] = "400"// ширина 1го флеша
banner[0][2] = "60" // высота 1го флеша
<!-- Конец первого флеша -->

<!-- Второй флеш -->
banner[1] = new Array()
banner[1][0] = "http://www.webremeslo.ru/ban2.swf" //абсолютный путь до 2го флеша
banner[1][1] = "800" // ширина 2го флеша
banner[1][2] = "100" //высота 2го флеша
<!-- Конец второго флеша -->

<!-- еще сколько угодно флешев.. только в квадратных скобках нужно указывать следующий номер banner[2][0]-->

n = Math.random()*1

/* Math.random()*1 - количество используемых банеров (включая ноль) т.е. если было 3 банера тогда n = Math.random()*2 */


nb = Math.round(n)
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '"><param name="movie" value=' + banner[nb][0] + '/><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src=' + banner[nb][0] + ' quality="high" bgcolor="#ffffff" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>')
</script>

</body>
</html>
Аватара пользователя
Алексей
Администратор
 
Сообщения: 834
Зарегистрирован: 03 апр 2010, 09:12
Откуда: Солнечный Геленджик :)

Re: Ротатор баннеров

Сообщение Алекс Король » 28 авг 2010, 20:33

Спасибо! Все прекрасно работает :!
Но есть вопрос по поводу увеличения количества баннеров. Кроме того что надо указывать следующий номер banner[2][0] и n = Math.random()*2, надо ли вносить какие-то изменения (дополнения) в коде, который идет после nb = Math.round(n) ? :)?
Аватара пользователя
Алекс Король
 
Сообщения: 27
Зарегистрирован: 28 авг 2010, 19:03

Re: Ротатор баннеров

Сообщение Алексей » 28 авг 2010, 20:37

Нет, больше ничего менять не надо! ;)!
Аватара пользователя
Алексей
Администратор
 
Сообщения: 834
Зарегистрирован: 03 апр 2010, 09:12
Откуда: Солнечный Геленджик :)

Re: Ротатор баннеров

Сообщение Алексей » 28 авг 2010, 20:47

Поясню:

Вот так добавляется флеш (объект) в HTML код:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="ширина" height="высота">
<param name="movie" value="адрес" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="адрес" quality="high" bgcolor="#ffffff" width="ширина" height="высота" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Предложенный выше скрипт подставляет в нужные места другие (banner[nb][0, 1 или 2]) данные, при перезагрузке страницы.. где [nb] один из случайных баннеров указанных в перечне в начале скрипта, а второе значение в квадратных скобках это адрес [0], ширина[1] и высота[2] данного баннера.

отсюда и получается:

document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '"><param name="movie" value=' + banner[nb][0] + '/><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src=' + banner[nb][0] + ' quality="high" bgcolor="#ffffff" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>')

Менять здесь ничего не нужно! всё и так уже поменяно.. :)
Аватара пользователя
Алексей
Администратор
 
Сообщения: 834
Зарегистрирован: 03 апр 2010, 09:12
Откуда: Солнечный Геленджик :)

Re: Ротатор баннеров

Сообщение Алекс Король » 17 сен 2010, 12:56

Добрый день, Алексей!
Я использую простой ротатор баннеров (ранее я уже о нем говорил). Претензий к нему нет. Смена картинок происходит последовательно (ну почти последовательно...). Итак, вот код ротатора:

<script type="text/javascript">
var how_many_ads = 4; //количество перебираемых баннеров
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
if (ad==1) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 1
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==2) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 2
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==3) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 2
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==4) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 2
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
document.write('<center>');
document.write('<a href=\"' + url + '\" target=\"_blank\">');
document.write('<img src=\"' + banner + '\"width=')
document.write(width + ' height=' + height + ' ');
document.write('alt=\"' + alt + '\"border="0" ><br>');// Здесь походу надо задавать толщину бордюра баннера...
document.write('<small>' + txt + '</small></a>');
document.write('</center>');
</script>

Единственное в чем я испытываю неудобство, так это в том, что баннер (изображение) имеет бордюр вокруг картинки, хотя строчка document.write('alt=\"' + alt + '\"border="0" ><br>'); вроде бы говорит о том, что толщина бордюра = "0", то есть, ее не должно быть...
Не могу понять в чем проблема :( Может есть какая-то ошибка в коде? Надеюсь на ваш совет :)
Аватара пользователя
Алекс Король
 
Сообщения: 27
Зарегистрирован: 28 авг 2010, 19:03

Re: Ротатор баннеров

Сообщение Алексей » 17 сен 2010, 14:16

В Вашем скрипте отсутствуют определения alt и txt которые находятся вот в этих строчках:

document.write('alt=\"' + alt + '\"border="0" ><br>');
document.write('<small>' + txt + '</small></a>');

Браузер наткнувшись на неуказанные определения игнорирует всю ошибочную строку/ки в которых у Вас указан бордюр и закрывающий тег </a> из за чего ссылка захватит весь последующий текст (если вообще будет работать), а бордюр будет по умолчанию.

Способов решения Вашей проблемы два:
Первый убрать неуказанные определения alt и txt из кода:

<script type="text/javascript">
var how_many_ads = 4; //количество перебираемых баннеров
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
if (ad==1) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 1
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==2) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 2
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==3) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 3
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
if (ad==4) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 4
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
}
document.write('<center>');
document.write('<a href=\"' + url + '\" target=\"_blank\">');
document.write('<img src=\"' + banner + '\"width=')
document.write(width + ' height=' + height + ' ');
document.write('border="0" ><br>');// Здесь
document.write('</a>');// и здесь.
document.write('</center>');
</script>
______________________________________________________________________
Второй вариант наоборот указать в скрипте недостающие определения alt и txt:

<script type="text/javascript">
var how_many_ads = 4; //количество перебираемых баннеров
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
if (ad==1) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 1
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
alt="Альтернативный текст для первого баннера (всплывающая подсказка)";
txt="Какой-то текст "подпись" к первому баннеру";

}
if (ad==2) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 2
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
alt="Альтернативный текст для второго баннера (всплывающая подсказка)";
txt="какой-то текст "подпись" второго баннера;
"
}
if (ad==3) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 3
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
alt="Альтернативный текст для третьего баннера (всплывающая подсказка)";
txt="Какой-то текст к третьему баннеру";

}
if (ad==4) {
url="...."; //адрес, по которому попадает пользователь после клика по баннеру 4
banner="....";//адрес самого рисунка баннера
width="170";
height="120";
alt="Альтернативный текст для четвертого баннера (всплывающая подсказка)";
txt="Какой-то текст "подпись"для четвёртого баннера";

}
document.write('<center>');
document.write('<a href=\"' + url + '\" target=\"_blank\">');
document.write('<img src=\"' + banner + '\"width=')
document.write(width + ' height=' + height + ' ');
document.write('alt=\"' + alt + '\"border="0" ><br>');
document.write('<small>' + txt + '</small></a>');
document.write('</center>');
</script>
Аватара пользователя
Алексей
Администратор
 
Сообщения: 834
Зарегистрирован: 03 апр 2010, 09:12
Откуда: Солнечный Геленджик :)

Re: Ротатор баннеров

Сообщение Алекс Король » 17 сен 2010, 15:39

Это как раз то, что мне было нужно :! Спасибо!
Аватара пользователя
Алекс Король
 
Сообщения: 27
Зарегистрирован: 28 авг 2010, 19:03

Re: Ротатор баннеров

Сообщение Dr Dyas Dark » 01 дек 2010, 21:20

Ява скриптом пока очень мало к сожалению занимаюсь, но надеюсь в будущем больше буду... Знаю, что он не терпит синтаксических ошибок любого рода
Dr Dyas Dark
 
Сообщения: 20
Зарегистрирован: 28 ноя 2010, 16:44

Re: Ротатор баннеров

Сообщение Olegh » 25 май 2011, 22:50

Алексей писал(а):Предлагаю такой вариант:

<html>
<body>

<h1>При обновлении страницы флеш будет другим</h1>

<script>
var banner = new Array()

<!-- Первый флеш -->
banner[0] = new Array()
banner[0][0] = "http://www.webremeslo.ru/ban1.swf" // абсолютный путь до 1го флеша
banner[0][1] = "400"// ширина 1го флеша
banner[0][2] = "60" // высота 1го флеша
<!-- Конец первого флеша -->

<!-- Второй флеш -->
banner[1] = new Array()
banner[1][0] = "http://www.webremeslo.ru/ban2.swf" //абсолютный путь до 2го флеша
banner[1][1] = "800" // ширина 2го флеша
banner[1][2] = "100" //высота 2го флеша
<!-- Конец второго флеша -->

<!-- еще сколько угодно флешев.. только в квадратных скобках нужно указывать следующий номер banner[2][0]-->

n = Math.random()*1

/* Math.random()*1 - количество используемых банеров (включая ноль) т.е. если было 3 банера тогда n = Math.random()*2 */


nb = Math.round(n)
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '"><param name="movie" value=' + banner[nb][0] + '/><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src=' + banner[nb][0] + ' quality="high" bgcolor="#ffffff" width="' + banner[nb][1] + '" height="' + banner[nb][2] + '" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>')
</script>

</body>
</html>


Здравствуйте Алексей!
Отличный ротатор, однако он у меня отказывается работать в IE. В чем может быть дело? Может на сегодняшний день есть другие варианты ротаторов флеш?
Olegh
 
Сообщения: 4
Зарегистрирован: 25 май 2011, 22:47

След.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

cron
Рейтинг@Mail.ru