2014-02-12 3 views
20

У меня есть страница с опциями выбора, и я использую JQuery для обновления страницы и добавления строки к URL-адресу при нажатии на эту опцию. Теперь мне нужно проверить URL-адрес браузера, чтобы увидеть, содержит ли он указанную строку.Проверьте, содержит ли url строку с JQuery

Смотря на другие темы, я думал, indexOf будет работать, но при попытке это не сработает. Как еще я могу проверить, содержит ли URL-адрес что-то вроде ?added-to-cart=555? Полный URL-адрес обычно выглядит так: http://my-site.com, и после нажатия на один из вариантов он выглядит следующим образом после перезагрузки страницы: http://my-site.com/?added-to-cart=555. Мне просто нужно проверить, содержит ли URL-адрес ?added-to-cart=555 бит.

Вот что у меня есть:

jQuery("#landing-select option").click(function(){ 

$('#product-form').submit(); 

    window.location.href += $(this).val() 

}); 

jQuery(document).ready(function($) { 
if(window.location.indexOf("?added-to-cart=555") >= 0) 
      { 
       alert("found it"); 
      } 
}); 
+6

вы не заметили об ошибке 'TypeError: window.location.indexOf не является функцией 'в консоли? [Узнайте, как] (http://www.creativebloq.com/javascript/javascript-debugging-beginners-3122820) [** debug ** JavaScript] (https://developers.google.com/chrome-developer-tools/документы/JavaScript-отладка). Чтение [документации MDN о 'window.location'] (https://developer.mozilla.org/en-US/docs/Web/API/Window.location) также полезно. –

+0

Обновление до 'window.location.href.indexOf (" string-to-match ")' – Abram

ответ

62

Use Window.location.href to take the url in javascript. it's a property that will tell you the current URL location of the browser. Setting the property to something different will redirect the page.

if (window.location.href.indexOf("?added-to-cart=555") > -1) { 
    alert("found it"); 
} 
+1

Спасибо за ответ. –

+0

Может быть полезно объяснить, что делает «> -1» в этом сценарии ... похоже, что это просто проверяет, существует ли эта строка в окне href. есть ли другой способ решить это? –

+1

@john_h Да, в методе javascript indexOf возвращается позиция строки. Если строка поиска доступна, она возвращает больше или равна нулю (> = 0). если он недоступен, он всегда возвращает -1. –

3

использование href с indexof

<script type="text/javascript"> 
$(document).ready(function() { 
    if(window.location.href.indexOf("added-to-cart=555") > -1) { 
    alert("your url contains the added-to-cart=555"); 
    } 
}); 
</script> 
3
if(window.location.href.indexOf("?added-to-cart=555") >= 0) 

Это window.location.href, не window.location.

9

window.location является объектом, а не строка, так что вы должны использовать window.location.href, чтобы получить реальную строку URL-адрес

if (window.location.href.indexOf("?added-to-cart=555") >= 0) { 
    alert("found it"); 
} 
Смежные вопросы