2013-08-27 4 views
0

Я создаю скрипт, который обнаруживает и возвращает имя страницы. Однако, когда есть строка запроса, она не возвращает значение, которое я хочу для «url_segment».Удалить строку запроса из URL-сегмента

Может кто-нибудь показать мне, как я могу удалить строку запроса и возвращает значения для переменных «URL» и «url_segment»

// http://test.com/action 
// http://test.com/action/all 
// http://test.com/action/all?page=2 

function return_page_name() 
{ 
    var url = $(location).attr("href").split("/")[3]; // returns "action" 
    var url_segment = $(location).attr("href").split("/")[4]; // returns "all" (if selected) 

    if(url === "") 
    { 
     page = "homepage"; 
    } 
    else if(url === "signup") { 
     page = "sign-up"; 
    } 

    return page; 
} 
+0

Избегайте использования JQuery в данном случае, это не нужно. Вы можете легко получить (и разобрать) путь с помощью 'window.location.pathname'. Разделите его, как вы делаете сейчас, и получите нужные элементы. –

+0

Предполагая, что 'location' на самом деле [' window.location'] (https://developer.mozilla.org/en-US/docs/Web/API/window.location), нет необходимости обертывать его в jQuery. –

+0

http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page –

ответ

0

Вы можете использовать этот код:

function Q() { 
    var q={}; 
    var a=window.location.search.substring(1); 
    var b=a.split("&"); 
    for (var i=0;i<b.length;i++) { 
     var c=b[i].split("="); 
     q[c[0]]=c[1]; 
    } 
    return q; 
} 

Так что вы можете выполнить его и получить объект, который содержит строки запросов, как у вас с PHP.

0

См window.location.pathname

function getLastUrlSegment() { 
    return window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1); 
} 

// http://test.com/action 
window.location.pathname == '/action' 
getLastUrlSegment() == 'action' 

// http://test.com/action/all 
window.location.pathname == '/action/all' 
getLastUrlSegment() == 'all' 

// http://test.com/action/all?page=2 
window.location.pathname == '/action/all' 
getLastUrlSegment() == 'all' 
Смежные вопросы