Jump to content
  • 0

коварный location.href


cyklop77
 Share

Question

уважаемые, помогите пожалуйста советом

написал следующий костыль для интернет-магазина


if(/.*\/cart.*/.test(location.href)){
console.log('cart');
}

есть сомнения по поводу правильности использования location.href . в таком виде оставлять безопасно? проблем не будет неожиданных?

запись правильная? document. не нужен?

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Запись правильная. AFAIK, document.location считается устаревшим, актуален window.location, а window. можно безболезненно опускать. Неожиданности могут быть, например, если в структуре сайта появится категория cartridges)

  • Like 1
Link to comment
Share on other sites

  • 0

А в чем цель этого кода?

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

Link to comment
Share on other sites

  • 0

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

Скрытие сайдбара, урл и заполнение формы не очень коррелируются между собой )

Ок. Задам вопрос по другому "cart" в url - это что? Папка, файл, запрос, часть имени папки, файла, запроса. Возможно задача решается другими способами.

Link to comment
Share on other sites

  • 0

cart это просто часть адреса. я до конца не разобрался в cms, но видимо существует роут, который видя адрес типа siteurl/cart/* ,загружает представление корзины

по уму конечно такие вещи нужно решать другим способом) я даже знаю как переопределить шаблон для страниц типа "корзина". но этот способ не так удобен как js-костыль потому что придётся править код в двух местах если например изменится версия jquery или придётся подключить еще скриптик

а скрываю элементы потому что думаю, что если уж пользователь решился на покупку, то его лучше уже не отвлекать ничем(типа подписки на новости или ссылкой на лучший товар месяца))

Link to comment
Share on other sites

  • 0

Тогда это можно и без регулярки сделать - http://jsfiddle.net/cdR65/

И для поиска конкретной подстроки есть метод indexOf().

А вообще, не знаю, что за CMS, но я бы попправила в шаблоне.

Link to comment
Share on other sites

  • 0

Тогда это можно и без регулярки сделать - http://jsfiddle.net/cdR65/

И для поиска конкретной подстроки есть метод indexOf().

А вообще, не знаю, что за CMS, но я бы попправила в шаблоне.

спасибо. этим способом можно даже избежать проблемы с cartrige, про которую selenit писал выше

cms отличная. drupal7. и там проблема решается просто добавлением page--cart.tpl.php . но из-за моей привычки встраивать js-скрипты в конце документа, нормальный документированный способ не удобен так как придётся очень много кода переносить в head и потом еще проверять его потому что некоторые скрипты могут перестать работать. это не сложно, но так как js очень много и работаю над этим проектом фактически бесплатно, то костыль не очень отягощает мою совесть)

пробовал все скрипты засунуть в блок и его вставлять плейсхолдером, но друпал такие выходки не поддерживает(

Edited by cyklop77
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy