Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   window.location.href (https://javascript.ru/forum/misc/64461-window-location-href.html)

avrusha 13.08.2016 11:40

window.location.href
 
Есть вот такой код, найденный на просторах интернета, как поправить его чтобы он срабатывал на любой странице содержащей "checkout/order-pay/"
Заранее спасибо.
$(function(){
    var url = window.location.href; 

    if (url.indexOf('checkout/order-pay/*') > -1) { 
        $('li.payment_method_cheque').hide();
        $('div#wcpgsk-dialog-validation-errors').hide();
    } else { 
        $('li.payment_method_cheque').show();  
    } 
});

laimas 13.08.2016 14:00

if (~url.indexOf('checkout/order-pay/'))

warren buffet 13.08.2016 14:21

Убери звезду checkout/order-pay/* - зачем она тут нужна? И все будет работать.

avrusha 13.08.2016 19:31

Цитата:

Сообщение от warren buffet (Сообщение 425292)
Убери звезду checkout/order-pay/* - зачем она тут нужна? И все будет работать.

Попытка незнайки:lol: установить любое продолжение адреса.

warren buffet 13.08.2016 21:46

Стопудово это он с Greasemonkey потырил прием. )))

Кстати можно сократить искомое, если взять

if(window.location.pathname.indexOf('/order-pay')>-1)

поскольку последний адрес указывает на action как правило, а checkout скорее всего контроллер, то есть сучность общего порядка.

avrusha 14.08.2016 21:50

Цитата:

Сообщение от warren buffet (Сообщение 425342)
Стопудово это он с Greasemonkey потырил прием. )))

Кстати можно сократить искомое, если взять

if(window.location.pathname.indexOf('/order-pay')>-1)

поскольку последний адрес указывает на action как правило, а checkout скорее всего контроллер, то есть сучность общего порядка.

увы, но не работает.

warren buffet 15.08.2016 13:11

Значит у тебя нет таких путей нигде.

avrusha 15.08.2016 21:58

извиняюсь, потерялась часть, вероятно, существенной информации при переносе вопроса с форума на форум...

Есть шаблон payment.php и на основе него создаются страницы checkout и checkout/order-pay.
Нужно чтобы на одной странице скрылся блок а и показался блок б, а на второй наоборот.

К сожалению единственный способ пропустить оплату через яндекс.кассу после подтверждения заказа.

warren buffet 15.08.2016 22:18

Короче, кроме адресов у тебя там еще ажно два элемента ищутся, успешность нахождения которых ты не проверяешь, а сразу лупишь метод. Проверяй все.

var p = location.pathname;

if(p.indexOf('checkout') > -1)
   console.log('there is');


Потом проверяй есть ли нужные элементы и на какой странице что есть.

laimas 16.08.2016 00:58

Цитата:

Сообщение от avrusha
Есть шаблон payment.php и на основе него создаются страницы checkout и checkout/order-pay.


И вас не удивляет то факт, что сервер без проблем создает две страницы, но при этом не может понять, что надо показать/скрыть при этом нечто? Зачем вам вообще JS здесь и поиск в url?


Часовой пояс GMT +3, время: 06:58.