|
Обработка ссылок типа /load/22?1 [Pro only]
|
|
| Lexanom | Дата: 01 Марта 2009, 14:01 | Сообщение # 21 |  ● ● ● ● ● 125 сообщений Статус: Offline | заранее прошу прощения, несколько раз перепрочитал тему, и так и не въехал, как же эти скрипты применять... я тоже задумывался, как сделать обработку страниц исходя из ссылок с доп. параметрами, но моих скудных знаний не хватило... Можно еще раз, с краткими пояснениями объяснить, как применить выполнение скриптов или стилей (как в шапке, например, скрывать лишнее) при ссылках типа /page?n? | | |
|
| Sierra | Дата: 01 Марта 2009, 17:58 | Сообщение # 22 |  ● ● ● ● ● 106 сообщений Статус: Offline | Code if (location.search == "?1") hide1(); else if (location.search == "?2") hide2();
function hide1() { // ну тут скрипт, который скроет что надо } function hide2() { // тут тоже =) } Может пригодится... | | |
|
| mob_dp | Дата: 01 Марта 2009, 23:10 | Сообщение # 23 | ● ● ● ● ● 4112 сообщений Статус: Offline | Lexanom, напиши какой эффект нужен и какой параметр должен в адресе быть, мы с реализацией поможем Code <script type="text/javascript"> var v = location.search.substring(1); if(v==1) { действия } } </script> Мне нравится вот эта версия, вроде все понятно. | | |
|
| Lexanom | Дата: 02 Марта 2009, 08:46 | Сообщение # 24 |  ● ● ● ● ● 125 сообщений Статус: Offline | Ну, задача собстенно такая - личный кабинет пользователей лежит на /index/8, но он же может лежать и на /index/8-ID, мне нужно, чтобы при адресе /8 страница обрабатывалась с одним шаблоном (юкоз-условиями видимо это задать нереально? например присвоить адресу переменную urlMy и в условиях проверять <?if('urlMy'='site/index/8')?>?) а при адресе /8-my_ID по дргуому. Хотя не это главное, это просто то, что я хотел реализовать давным давно... собстенно, для чего обратился в эту тему с доп.параметрами ссылок - мне нужно изменить страницу добавления\редактирования материала каталога сайтов с учетом этого параметра - если адрес - dir/0-0-0-0-1 - показывать $BODY$, но скрывать другие материалы (помещенные в div#id), если же с параметром ?text - то наоборот, скрыть $BODY$ (который заранее тоже помещу в див) и показать другие материалы (в качестве которых выступает все тот же $BODY$, только заданный копипастом HTML-кода с измененыыми параметрами) Мне нравится вот эта версия, вроде все понятно. к сожалению, не знаю что есть location.search.substring(), и что оно проверяет... мне куда понятнее тот код, что предложил Sierra...Добавлено (02 Март 2009, 08:46) --------------------------------------------- ура! работаит! спасибо всем) | | |
|
| Sierra | Дата: 02 Марта 2009, 10:21 | Сообщение # 25 |  ● ● ● ● ● 106 сообщений Статус: Offline | не знаю что есть location.search.substring(), и что оно проверяет... Он проверяет что стоит после знака ? в ссылке. | | |
|
| Бармалей | Дата: 02 Марта 2009, 11:11 | Сообщение # 26 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | substring - метод, который выделяет подстроку из строки например Code 'some string value'.substring(5, 11) вернет 'string' P.S. я за полноценную GET передачу данных
 | | |
|
| Lexanom | Дата: 03 Марта 2009, 07:02 | Сообщение # 27 |  ● ● ● ● ● 125 сообщений Статус: Offline | можно линк на хелп по этому? substring - метод, который выделяет подстроку тоесть он может проверять не только параметр в строке адреса и не только после знака '?'? например, он может проверить существование адреса 'http://myurl/' или 'http://myurl%param%'? | | |
|
| Бармалей | Дата: 03 Марта 2009, 12:04 | Сообщение # 28 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline |
 | | |
|
| Lexanom | Дата: 03 Марта 2009, 13:19 | Сообщение # 29 |  ● ● ● ● ● 125 сообщений Статус: Offline | Но он может выделить 'http://myurl/' что это будет значить на практике? | | |
|
| Бармалей | Дата: 03 Марта 2009, 16:34 | Сообщение # 30 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | То что мы можем превратить строку 'responce:someValue=3x1' в 'someValue'
 | | |
|
| Lexanom | Отредактировал Lexanom - Среда, 04 Марта 2009, 08:28 Дата: 04 Марта 2009, 08:28 | Сообщение # 31 |  ● ● ● ● ● 125 сообщений Статус: Offline | Code function signSc() {} if (location.search == "?signature") signSc(); можно ли то же самое написать на jQ? очень важно, на странице JS умышленно не обрабатывается. | | |
|
| Sierra | Дата: 04 Марта 2009, 09:37 | Сообщение # 32 |  ● ● ● ● ● 106 сообщений Статус: Offline | Lexanom, ну разве что поизвращаться с find(), но без location.search все равно не получится, и выйдет больше кода. А может и нельзя никак, я не пробовал. jQuery не может заменить JS везде, а где-то это просто не нужно и не рационально делать (например - здесь). ps: function signSc() {} по логике должна стоять после if. | | |
|
| Бармалей | Дата: 04 Марта 2009, 11:26 | Сообщение # 33 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code function signSc() {} if (location.search == "?signature") signSc(); можно ли то же самое написать на jQ? очень важно, на странице JS умышленно не обрабатывается. тут нечего на jQ переписывать. jQ это тот же самый JavaScript
 | | |
|
| Lexanom | Отредактировал Lexanom - Среда, 04 Марта 2009, 12:54 Дата: 04 Марта 2009, 12:50 | Сообщение # 34 |  ● ● ● ● ● 125 сообщений Статус: Offline | jQ это тот же самый JavaScript я понимаю, но просто на странице заведомо не работает яваскрипт, т.к. загружается аяксом, зато легко обрабатывается жиквери (факт), видимо, благодаря тут же лежащим линкам на библиотеку. Не подключать же мне дополнительные библиотеки явы? фукция $() срабатывает всегда, function param(), if {} else {} - никогда. вот я и подумал - может есть аналоги условий специально для jQ. окей, буду искать обходы ps: function signSc() {} по логике должна стоять после if. почему? О_о как может выполняться функция, если ее описание стоит после ее старта? впроем, это не столь важно | | |
|
| Sierra | Дата: 04 Марта 2009, 13:59 | Сообщение # 35 |  ● ● ● ● ● 106 сообщений Статус: Offline | почему? О_о как может выполняться функция, если ее описание стоит после ее старта? впроем, это не столь важно У нас разная логика, но по моей логики сначала идут как бы события, запускающие функции, а затем сами функции... На самом деле это действительно не столь важно, но только тогда, когда кода не много, иначе такая куралесица начнется...  | | |
|
| Бармалей | Дата: 04 Марта 2009, 14:07 | Сообщение # 36 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code alert( typeof somefnctn ); function somefnctn(){alert('true')}; Алерт выдаст function Code alert( typeof somefnctn ); somefnctn = function(){alert('true')}; Алерт выдаст undefined
 | | |
|
| Gaara | Дата: 04 Марта 2009, 15:45 | Сообщение # 37 |  ● ● ● ● ● 1312 сообщений Статус: Offline | Code alert( typeof somefnctn ); function somefnctn(){alert('true')}; Алерт выдаст function Code alert( typeof somefnctn ); somefnctn = function(){alert('true')}; Алерт выдаст undefined еще Code <script> alert( typeof somefnctn ); </script> <script> function somefnctn(){alert('true')}; </script> тоже undefined | | |
|
| Lexanom | Дата: 05 Марта 2009, 09:05 | Сообщение # 38 |  ● ● ● ● ● 125 сообщений Статус: Offline | <script> 2. alert( typeof somefnctn ); 3. </script> 4. <script> 5. function somefnctn(){alert('true')}; 6. </script> это же очевидно %( азы скриптописания, блин. как браузер может выполнить функцию, если в его память еще не загружено ее описание? | | |
|
| Бармалей | Дата: 05 Марта 2009, 12:10 | Сообщение # 39 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Lexanom, однако функции с обьявление function name(){} браузер выполняет до остального кода
 | | |
|
| Lexanom | Дата: 05 Марта 2009, 13:46 | Сообщение # 40 |  ● ● ● ● ● 125 сообщений Статус: Offline | помоему, это правило выполняется только тогда, когда описание функции и ее вызов находятся под одним тегом <script>. могу ошибаться. | | |
|