Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » скрипт показывающий баннер на определенной странице

Ответить
Настройки темы
скрипт показывающий баннер на определенной странице

Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


всем привет.
нужна помощь зала
дано: имеется форум YaBB2.1 в котором есть единый шаблон хтмл оформления в формате html.
задача: нужно повесить баннер (флешевую растяжку) но только в один раздел форума.

собственно я не придумал ничего лучше чем поставить яваскрипт в шаблон форума который бы определял в каком разделе находится пользователь и, если это нужный раздел, то показывал бы баннер. а в других разделах соответственно - не показывал.
разделы форума делятся по их названиям в строке эксплорера. то есть есть раздел www.сайт.ru/forum/YaBB.cgi?board=admin и все темы в этом разделе идут как www.сайт.ru/forum/YaBB.cgi?board=admin;num=1193739447

и тут встает главный вопрос как этот скрипт написать если в яваскрипте ни бум-бум

спасите, помогите

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 14:06, 28-05-2008

 

Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


ну можно что нить в этом духе, жаль потестироват не могу. Где алерты надо поменять на вставку банера

Код: Выделить весь код
<html><head>
<script type="text/javascript">
var params=document.URL.split("?")[1];
var part = '';
if (params != null ) {
	try {
		var part=params.split(";")[0].split("=")[1];
	} catch (e) {}
}

switch (part) {
	case "admin" :
		alert("раздел = admin");
		break;
	default:
		alert("неизвестный раздел");
}
</script>
</head><body></body></html>
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:14, 28-05-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


HTML код: Выделить весь код
<script> if (document.location.search.indexOf('board=admin') != -1) { document.getElementById('placeForBanner').innerHTML = "Тут HTML-код для вставки баннера"; } </script>

Разъясняю вкратце:
document.location - значение, написанное в адресной строке
document.location.search - то, что в адресе после знака "?" (включая сам вопросительный знак)
строка.indexOf('подстрока') - возвращает вхождение 'подстроки' в строку. Если строка не найдена, возвращает -1.
Т.е. мы проверяем, если в адресе после знака "?" есть строка 'board=admin', то в элемент <div id="placeForBanner"></div> вставляем соответствующий код баннера. Соответственно, там, где строки нет, баннер вставлять не надо.

Насчёт вставки скрипта в нужное место - сами разберётесь?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 28-05-2008 | #3


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Coutty,
думал что разберусь но не тут то было
я воткнул ваш код прямо в место где по идее должен быть баннер

пробовал на гифе. я так понял нет разницы какой код хтмл будет вызываться.

<script>
if (document.location.search.indexOf('board=admin') != -1)
{
document.getElementById('placeForBanner').innerHTML = "<img src="http://www.сайт.ru/banners/468_60_rus2.gif">";
}
</script>

в итоге баннера нет. но есть предупреждение:

строка 34
символ 68
"предполагается наличие ";""
код 0


в 34 строке в хтмл странице следующее:
document.getElementById('placeForBanner').innerHTML = "<img src="http://www.logist.ru/banners/468_60_rus2.gif">";

********************

bruder,
сори я не понял куда вставлять код баннера точнее вместо чего.
alert("раздел = admin"); вместо раздел=админ?

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 17:13, 28-05-2008 | #4


Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


если вам не нужно детальное выделение параметров, то у Coutty конечно решение короче им и воспользуйтесь.

placeForBanner это id вашего елемента в котором будет находится баннер

Отправлено: 17:43, 28-05-2008 | #5


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


опробовал вариант такой:
<script>
if (document.location.search.indexOf('board=admin') != -1)
{
document.getElementById('placeForBanner').innerHTML = "<img src="http://www.сайт.ru/banners/468_60_rus2.gif">";
}
</script>
скрипт поставил в хеад
а в боди поставил
<div id="placeForBanner"></div>

итог тот же но ошибка другая:
строка 30
символ 3
document.getElementById(...) есть нулл или не является объектом
код 0

bruder, честно говоря я с удовольствием разобрался бы в обоих вариантах чисто для себя

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 17:45, 28-05-2008 | #6


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата koresaram:
я воткнул ваш код прямо в место где по идее должен быть баннер »
По идее, он должен вызываться после определения слоя, в который будет вставлен баннер. Ладно, ниже напишу подробнее.
Цитата koresaram:
document.getElementById('placeForBanner').innerHTML = "<img src="http://www.сайт.ru/banners/468_60_rus2.gif">";»
Очевидно, что ошибка заключается в использовании двойных кавычек внутри двойных. Нужно либо так:
document.getElementById('placeForBanner').innerHTML = '<img src="http://www.сайт.ru/banners/468_60_rus2.gif">';
Либо так:
document.getElementById('placeForBanner').innerHTML = "<img src='http://www.сайт.ru/banners/468_60_rus2.gif'>";
Либо так:
document.getElementById('placeForBanner').innerHTML = "<img src=\"http://www.сайт.ru/banners/468_60_rus2.gif\">";
Либо иным способом

Цитата koresaram:
итог тот же но ошибка другая:
строка 30
символ 3
document.getElementById(...) есть нулл или не является объектом
код 0 »
Потому что код вызывается до того, как создан объект с соответствующим именем. Его нужно вставлять либо после "слоя", либо по событию onload для страницы. Второй вариант мне нравится больше, потому что я не люблю разбрасывать скрипты по всему телу документа. Вот он:
HTML код: Выделить весь код
<html> <head> <title>Опупенная страница!</title> <script> function getBanner() { if (document.location.search.indexOf('board=admin') != -1) { document.getElementById('placeForBanner').innerHTML = "<img src='http://www.сайт.ru/banners/468_60_rus2.gif'>"; } } </script> </head> <body onload="getBanner();"> Много разного html... <div id="placeForBanner"><!-- сюда будет вставлен баннер --></div> И ещё много разного html... </body> </html>

Вместо div'а, видимо, можно и <p> использовать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:04, 28-05-2008 | #7


Старожил


Сообщения: 313
Благодарности: 46

Профиль | Отправить PM | Цитировать


поставте этот скрипт внизу страницы, потому как елемент еще не загружен. Или поместите в функцию и свяжите с window.onload в хедере

window.onload = ваша_функция;

Отправлено: 18:07, 28-05-2008 | #8


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


При таком подходе баннер будет загружаться после полной загрузки страницы. Вот ещё решение (не проверял - т.к. лениво ):
HTML код: Выделить весь код
<html> <head> <title>Опупенная страница!</title> </head> <body> Много разного html... <div> <script> if (document.location.search.indexOf('board=admin') != -1) { document.write("<img src='http://www.сайт.ru/banners/468_60_rus2.gif'>"); } </script> </div> Ещё много html... </body> </html>

По идее, document.write вписывает то, что надо в то место, где он используется. Но синтаксис не припомню - то ли document.write("текст"), то ли document.write = "текст"...

Соответственно, здесь баннер начинает загружаться сразу после того, как загрузился скрипт.

Отправлено: 18:17, 28-05-2008 | #9


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Coutty, про двойные кавычки и обратный слеш я думал(имеется мизерный опыт в перле но их замена ничего не давала ) дело было в очереди загрузки и все заработало спасибо!

дополнительный вопрос: а если надо будет чтобы баннер показывался в трех разделах из 10? тогда как быть? добавить в условие через точку с запятой боард=клуб и т.д. или как?

bruder,
а можно ваш метод тоже в подробном виде как у Коутти? с описанием построчным и кодом?

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 18:34, 28-05-2008 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » скрипт показывающий баннер на определенной странице

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки avfiga Скриптовые языки администрирования Windows 71 07-01-2023 18:50
Вопрос - Как убрать баннер? Леха500 Защита компьютерных систем 9 02-01-2011 17:43
[решено] SMS Баннер mithell Лечение систем от вредоносных программ 2 21-01-2010 10:11
Порно баннер burundook Лечение систем от вредоносных программ 1 18-09-2009 21:30
Заценим баннер BigMac О сайте и форуме 60 30-01-2003 13:55




 
Переход