2011-09-06 6 views
3

버튼을 클릭 할 때 url의 쿼리 문자열을 제거하려면 어떻게해야합니까? 내 URL은 다음과 같습니다buttonclick에서 쿼리 문자열을 제거하는 방법은 무엇입니까?

이 페이지는 새 암호를 얻기위한 양식을 보여줍니다

www.mysite.com/?tx_felogin_pi1[forgot]=1, 모든 것이 overlaybox 안에 있습니다. 사용자가 갑자기 자신의 userdata를 다시 기억할 때 상자에 링크를 제공하여 (또한 overlaybox 내부의) signin 양식으로 돌아갈 필요가 있지만 링크 (및 overlaybox)가 수정되어야하므로 수정 URL을 사용할 수 없습니다. 모든 페이지에서 액세스 할 수 있어야합니다. 그래서 나는 URL의 독립자인 querystring을 제거하는 링크가 필요하다.

내가이 시도,하지만 작동하지 않습니다

function getPathFromUrl(url) { 
     return url.split("?")[0]; 
    } 
    // from http://stackoverflow.com/questions/2540969/remove-querystring-from-url 

    $("#querystring").click(getPathFromUrl); 

내 콘솔에 오류가 있습니다 : url.split는 함수가 아닙니다 ...

답변

17

url은 무엇입니까? 당신은 window.location 개체에서 URL을 얻을 수 있습니다

$("#querystring").click(function(){ 
    window.location.href = window.location.href.split('?')[0]; 
}); 
+0

감사를 사용하는 쿼리 문자열없이 URL을 받으실 수 있습니다! 그것은 잘 작동 – sinini

+0

당신의 대답 –

+1

에 대한 뛰어난 +1 그것은 페이지를 다시로드합니다. –

0
$("#querystring").click(function(){ 
    // you can use url.split("?")[0]; here, however be sure it's in global scope 

}); 
1

function getPathFromUrl() { 
    var url = window.location.href; 

    if(url.indexOf("?") != -1) 
    url = url.split("?")[0]; 

    return url; 
} 

사용을

$("#querystring").click(function(){ 
    alert(getPathFromUrl());//this will alert the url without querystring 
}); 
+1

문자열에 '?'가 포함되어 있는지 확인할 필요가 없습니다. ''test '.split ('?') [0]'는'test'를 리턴합니다. –

+0

그게 맞습니까?하지만 왜 'split'에 '?'가 포함되어 있지 않습니까? – ShankarSangoli

+1

필자는 테스트하지는 않았지만,'split'은'indexOf'보다 비싸다고 생각합니다. 왜 코드를 그렇게 복잡하게 만드나요? –

관련 문제