![]() |
скрипт показывающий баннер на определенной странице
всем привет.
нужна помощь зала :) дано: имеется форум YaBB2.1 в котором есть единый шаблон хтмл оформления в формате html. задача: нужно повесить баннер (флешевую растяжку) но только в один раздел форума. собственно я не придумал ничего лучше чем поставить яваскрипт в шаблон форума который бы определял в каком разделе находится пользователь и, если это нужный раздел, то показывал бы баннер. а в других разделах соответственно - не показывал. разделы форума делятся по их названиям в строке эксплорера. то есть есть раздел www.сайт.ru/forum/YaBB.cgi?board=admin и все темы в этом разделе идут как www.сайт.ru/forum/YaBB.cgi?board=admin;num=1193739447 и тут встает главный вопрос :) как этот скрипт написать если в яваскрипте ни бум-бум :) спасите, помогите :) |
ну можно что нить в этом духе, жаль потестироват не могу. Где алерты надо поменять на вставку банера
Код:
<html><head> |
HTML код:
<script> document.location - значение, написанное в адресной строке document.location.search - то, что в адресе после знака "?" (включая сам вопросительный знак) строка.indexOf('подстрока') - возвращает вхождение 'подстроки' в строку. Если строка не найдена, возвращает -1. Т.е. мы проверяем, если в адресе после знака "?" есть строка 'board=admin', то в элемент <div id="placeForBanner"></div> вставляем соответствующий код баннера. Соответственно, там, где строки нет, баннер вставлять не надо. Насчёт вставки скрипта в нужное место - сами разберётесь?:) |
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"); вместо раздел=админ? |
если вам не нужно детальное выделение параметров, то у Coutty конечно решение короче им и воспользуйтесь.
placeForBanner это id вашего елемента в котором будет находится баннер |
опробовал вариант такой:
<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, честно говоря я с удовольствием разобрался бы в обоих вариантах чисто для себя :) |
Цитата:
Цитата:
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\">"; Либо иным способом :lol: Цитата:
HTML код:
<html> |
поставте этот скрипт внизу страницы, потому как елемент еще не загружен. Или поместите в функцию и свяжите с window.onload в хедере
window.onload = ваша_функция; |
При таком подходе баннер будет загружаться после полной загрузки страницы. Вот ещё решение (не проверял - т.к. лениво :)):
HTML код:
<html> Соответственно, здесь баннер начинает загружаться сразу после того, как загрузился скрипт. |
Coutty, про двойные кавычки и обратный слеш я думал(имеется мизерный опыт в перле :) но их замена ничего не давала :)) дело было в очереди загрузки :) и все заработало :) спасибо!
дополнительный вопрос: а если надо будет чтобы баннер показывался в трех разделах из 10? тогда как быть? добавить в условие через точку с запятой боард=клуб и т.д. или как? bruder, а можно ваш метод тоже в подробном виде как у Коутти? с описанием построчным и кодом? :) |
Код:
var a = document.location.search; // для краткости заносим в переменную a Фигурные скобки после if можно не ставить, потому что одно действие выполняется, но и не повредят они)) А вот если надо делать в двадцати разделах из ста, то способ уже будет другой. Например: Код:
var a = document.location.search; // для краткости Не Коутти, а Котти! =^_^= |
еще раз спасибо Котти :)
|
всем привет. это опять я и вот по какому вопросу :)
требуется немного усложнить скрипт. исходные данные те же самые. форум и необходимость подмены картинки в зависимости от раздела. но в этот раз дело осложняется бекграундом. вот такой у нас кусок кода: Код:
у меня возникла опять же мысль, что надо как-то заранее определять наборы изображений для определенной ветки и в код картинки вставлять эти изображения. то есть скрипт проверяет наличие набора букв в строке браузера и если там есть например f=12 то он дает ссылки на эти картинки в общем виде. не знаю как объяснить, но вот типа так: код естественно не рабочий :) Код:
<script> |
Время: 02:00. |
Время: 02:00.
© OSzone.net 2001-