[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача js'у GET-параметров или .. ?
noo
Возникла задача создать генератор информеров для сайта.
Т.к. дизайн нужно кастомизировать, вознила идея генерировать ссылку на информер таким образом:

Цитата
inform.js?font=Arial&bgcolor=FFFFFF&width=120& etc


и чтобы потом js эти данные разгребал через костыль и строил на основе этих данных дизайн блока-информера, насколько это гуманно?

или сделать составной частью (отдельно объявить переменные) и плодить текст прямо на каждой странице пользователей информера?



Спустя 28 минут, 18 секунд (16.07.2012 - 11:20) nikolasline написал(а):
Лучше использовать перемененные

var settings = {
font: "Arial",
bgcolor: "FFFFFF",
width: "120"
}

Спустя 4 минуты, 53 секунды (16.07.2012 - 11:25) Игорь_Vasinsky написал(а):
массив не передать в GET)

пиши настройки в виде json в БД, а в GET передавай id счётчика

Спустя 9 минут, 1 секунда (16.07.2012 - 11:34) noo написал(а):
Цитата (Игорь_Vasinsky @ 16.07.2012 - 08:25)
пиши настройки в виде json в БД, а в GET передавай id счётчика

В том-то и дело, что не хочется хранить пользовательские настройки дизайна в бд.
Хочется отдавать из бд или вообще из статичного файла только информацию, а оформление чтобы на этапе создания кода для вставки генерировалось.


Спустя 3 минуты, 10 секунд (16.07.2012 - 11:37) Игорь_Vasinsky написал(а):
ну тады как в первом посте. все кишки в url

Спустя 29 минут, 57 секунд (16.07.2012 - 12:07) noo написал(а):
Кстати, параллельно хотел спросить, часто к файлу-обработчику добавляют какую-нибудь переменную, типа:
t='+Math.random()+'"
эта конструкция используется почти во всех скриптах счетчиков, контекст рекламы и прочего.
Зачем они отсылают это рендомное число?

Спустя 16 минут, 26 секунд (16.07.2012 - 12:24) Игорь_Vasinsky написал(а):
чтобы не наткнуться на кэш, а получить новое значение.

Спустя 3 часа, 23 минуты, 50 секунд (16.07.2012 - 15:47) noo написал(а):
Игорь_Vasinsky, спасибо за ответы.
Нашел вот такую монструозную функцию для разбора псевдо-гет параметров:

var scriptList = document.getElementsByTagName("script");
var script_link;
for (var i = 0; i < scriptList.length; i++)
{
if (scriptList[i].src.indexOf("my_js.js")!=-1) script_link = scriptList[i].src;
}
// теперь у нас в script_link содержится ссылка http://site.ru/my_js.js?font=Arial&bgcolor=FFFFFF

function GetParameter(sParameterName){
var Parameters = script_link.substring(script_link.indexOf("?")+1).split("&"); // отсекаем «?» и вносим переменные и их значения в массив
var value = "";
for (var i = 0; i < Parameters.length; i++){ // пробегаем весь массив
if (Parameters[i].split("=")[0] == sParameterName){ // если это искомая переменная — бинго!
if (Parameters[i].split("=").length > 1) value = Parameters[i].split("=")[1]; // если значение параметра задано, то возвращаем его
return value;
}
}

return "";
}

Есть ли более изящное решение?

Спустя 24 минуты, 11 секунд (16.07.2012 - 16:12) Игорь_Vasinsky написал(а):
не плохо бы подстраховаться и указать значения параметров по умолчанию - если юзер вдруг намудрит с кодом вставки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.