SWITCH чертов. Немогу понять в чем дело.
var domainlocation = window.location.href; var regular_exp = /.ua\/\w+/g; var result_domainlocation = domainlocation.match(regular_exp); if ( result_domainlocation == '.ua/Vinogradiv' ) { alert('Vinogradiv'); } if ( result_domainlocation == '.ua/Beregove' ) { alert('Beregove'); } switch (result_domainlocation) { case ".ua/Vinogradiv" : alert("Vinogradiv"); break; case ".ua/Beregove" : alert('Beregove'); } Добрый день. Такая банальная проблема инструкция IF - все работает, SWITCH - НЕТ. подскажите в чем проблема(регулярка работает.) |
skuty,
result_domainlocation у вас что? сам себе отвечаю массив или null Цитата:
|
у меня получаеться result_domainlocation = ".ua/Vinogradiv" (допустим).
Еще одно, эта переменная как бы свойство обьекта. Может в этом дело? та используя инструкцию IF код выполняеться. а через switch почему то нет. мне нужен switch, так как много вариантов будет. я просто синтаксис незнаю или что. должен работать а не работает. |
skuty,
ну превратите массив в строку то и сравнивайте switch (''+result_domainlocation) Цитата:
у вас result_domainlocation = [".ua/Vinogradiv"] |
skuty,
http://javascript.ru/comparison-operators Цитата:
http://javascript.ru/switch Цитата:
|
Спасибо... вот что значит лишние 2 символа. блин.))
|
Цитата:
|
именно .ua (так как из урл выбераеться)
спасибо. Может подскажите как решить проще.. выборку site.ua/poslugy site.ua/Kiev/poslugy при моем выражении береться первое слово, но в первом случаи мне не подходит. я использую прямой пусть (window.location.href) думаю в таком случаи использовать window.location.origin, так как у меня еще региональних доменов дофіг(типу kiev.ua, dn.ua, lviv.ua) |
var regular_exp = /\.ua\/(\w+)\//; var result_domainlocation = domainlocation.match(regular_exp); if(result_domainlocation) result_domainlocation = result_domainlocation[1]; Цитата:
|
Цитата:
|
есть сайты
site.ua/services site.kiev.ua/services site.dn.ua/services site.dn.ua/Dobropole/services site.dn.ua/Kirovskoe/services site.dn.ua/Debalcevo/services site.lviv.ua/services site.lviv.ua/Zolochiv/services и т.д. ... для каждого разное содержимое. нужно определить адрес загружаемого сайта и вывести соответственный блок. |
skuty,
вот так попробуйте /^site\.(ua|kiev|dn|lviv)\S*\/services$/i |
skuty,
Точней, наверное, вот так будет /^site\.(ua|kiev|dn|lviv)[/\w.-]*\/services$/i Хотя для вас это особого значения не имеет, Вам насколько я понял, просто адрес надо хапнуть, на валидность проверять не надо. ЗЫ и вот еще что. Если допустимы адреса вида site.ua/services/ (со слешем в конце) то /^site\.(ua|kiev|dn|lviv)[/\w.-]*\/services\/?$/i |
skuty,
Да, вот еще что. Если будешь дергать не именно в таком виде, как ты написал site... а как то http://... то, само сабой, первый знак ^ тебе не нужен. |
Цитата:
Он наверняка знает, а значит не нужно никаких странных регулярок. Заметь, блок твой не проиндексируется поисковиками при твоем подходе ) |
Процитирую целиком
Цитата:
Несмотря что идея бредовая грузить весь контент динамически, контроллер тут очевидный объект (можно даже наследование организовать, если есть какие-то общие методы или свойства). берем site.dn.ua/services site.dn.ua/Dobropole/services site.dn.ua/Kirovskoe/services site.dn.ua/Debalcevo/services делаем var sites = { 'site.dn.ua':{ services:{// тут добро}, Dobropole:{ services:{// тут добро} }, Kirovskoe:{ services:{// тут добро} }, Debalcevo:{ services:{// тут зло} } } }; Теперь значиццо sites[location.hostname] нам дает путь к пропертям/методам данного домена, ну а дальше и так понятно. Колем pathname и профтыкаем в следующие квадратные скобки и немедленно попадаем на правильную дорогу. |
Я к тому что какой тут в п...у свич?
|
Кстати да, я так навигацию делаю на сайтах, причем обычным массивом, без наворотов в стиле implements Countable, потому что в php есть указатели. С указателями приходиться быть очень осторожным, но зато вся тряхомудия туда-сюда не переписывается. Навигация базируется в БД в каноничном id pid дереве, откуда я ее засасываю в массив (ну, в объект конечно, чтобы глобально добывать) и дальше в любое время откуда хочешь что надо читаешь или пишешь.
|
Я начинающий в этом деле... немного знаю.
Задача такова есть сайты: site.dn.ua/services site.dn.ua/Dobropole/services site.dn.ua/Kirovskoe/services у них один и тот же файл пхп(разная база данных). Я, хочу вставить небольшой блок инфо для каждого свой. Потому решил делать проверку на window.location.href и выбрать регуляркой первое слово после (.ua). Проверяю cвитчом.. какой сайт(точнее под сайт) и соответсвенный блок вставляю. Минус этого способа, я немогу проверить одним свитчом kiev.ua или dn.ua Можно делать както свитч в свитче?) Допустим ниодин вариант не подошел, запустить другую проверку.(Допустив в дефаульте вставить?) |
Кто ему такое задание дал, Стрелков что ли?
Ладно, понятно что вы научились свитчить и собираетесь играть эту струну до пенсии. А вот в случае с готовой картой ресурсов которая их по лесенке вам поднимет и выдаст что конкретно непонятно? |
var sites = { 'site.ua':{ 'sevices': { alert('Контент для Сайт.Уа'); } }, 'site.kiev.ua':{ 'services':{ alert('Контент для Сайт.Киев.Уа'); } }, 'site.dn.ua':{ services:{ alert('Контент для Сайт.ДыЫн.Уа'); }, Dobropole:{ services:{ alert('<ktfznm, что тут вообще можно не понять?'); } }, Kirovskoe:{ services:{ alert('В Кировском даже школьник бы понял что это...'); } }, Debalcevo:{ services:{ alert('... карта, которой все нормальные люди и пользуются'); } } } }; а ненормальные свистят. Так вот господа читатели, если у ТС не хватает смелости запустить этот скрипт в своем срач-паде, это не значит что он не работает. Работает, но я запускать не собираюсь. Это типовая карта которой все люди пользуются в именно таких случаях. Захреном искать заранее известное скажите? Все и так известно заранее - составь карту и шарашь по ней. При необходимости добавляй или удаляй и все такое. |
Все-таки запустил. Оба примера выше были абстрактными, поскольку хз откуда он вообще контент берет - откуда вообще, на самом деле, если не с сервера? Вот конкретная конкретика. Контент должен лежать в оконечной проперти. Разумеется там может лежать ссылка на контент, индекс какой-нить или вместо проперти можно заделать функцию, но если функция то надо уже думать о наследстве... В общем если ТС еще раз глюканет как дежавю, то значит он живет в Матрице.
var sites = { 'site.ua':{ 'sevices':'Контент для Сайт.Уа' }, 'site.kiev.ua':{ 'services':'Контент для Сайт.Киев.Уа' }, 'site.dn.ua':{ services:'Контент для Сайт.ДыЫн.Уа', Dobropole:{ services:'<ktfznm, что тут вообще можно не понять?' }, Kirovskoe:{ services:'В Кировском даже школьник бы понял что это...' }, Debalcevo:{ services:'... карта, которой все нормальные люди и пользуются' } } }; try { var innerHTML = sites['site.dn.ua']['Kirovskoe']['services']; } catch(e){ alert('Где-то накосячил!'); } innerHTML; /* В Кировском даже школьник бы понял что это... */ |
Часовой пояс GMT +3, время: 03:25. |