2013-08-14 13 views
5

Jeśli moja bieżąca strona jest w tym formacie ...

http://www.mydomain.com/folder/mypage.php?param=value 

Czy istnieje prosty sposób uzyskać ten

http://www.mydomain.com/folder/mypage.php 

przy użyciu javascript?

Odpowiedz

5

Nie rób tego regex i podział rzeczy. Użyj wbudowanego analizatora adresów URL przeglądarki.

window.location.origin + window.location.pathname 

A jeśli potrzebujesz do analizowania URL, który jest bieżąca strona:

var url = document.createElement('a'); 
url.href = "http://www.example.com/some/path?name=value#anchor"; 
console.log(url.origin + url.pathname); 

i wspierać IE IE (bo nie ma location.origin):

location.protocol + '//' + location.host + location.pathname; 

(Inspiracja z https://stackoverflow.com/a/6168370/711902)

+0

Muszę się zgodzić, to osiąga dokładnie to, czego potrzebowałem, bez żadnych niepotrzebnych kroków. Dziękuję Ci. –

+0

to nie działa w Operze 12 (i wcześniejszej) oraz w IE (http://www.w3schools.com/jsref/prop_loc_origin.asp) – Micer

+1

@Micer Dobra rada. Zaktualizowany za pomocą alternatywy IE. –

3

Spróbuj użyć split jak

var url = "http://www.mydomain.com/folder/mypage.php?param=value"; 
var url_array = url.split("?"); 
alert(url_array[0]); //Alerts http://www.mydomain.com/folder/mypage.php 

Nawet mamy wielu parametrów w GET, pierwszego segmentu będzie URL bez GET parametry.

To DEMO

+0

Dziękuję, właśnie to, czego potrzebowałem! Nie wspominałem o tym w pytaniu, ale działa to również wtedy, gdy nie przekazano żadnych parametrów =) –

+0

W jaki sposób rozwiązanie oparte na ciągach obsługuje zniekształcone adresy URL, takie jak 'http://www.domena.com/page#anchor? parametr "? Używanie obiektu dokumentu i jego api jest bardziej niezawodnym rozwiązaniem. IMO –

0

Spróbuj

var result = yourUrl.substring(0, yourUrl.indexOf('?')); 

Working demo

0
var options = decodeURIComponent(window.location.search.slice(1)) 
    .split('&') 
    .reduce(function _reduce (/*Object*/ a, /*String*/ b) { 
    b = b.split('='); 
    a[b[0]] = b[1]; 
    return a; 
    }, {}); 
2

spróbuj tego:

var url=document.location.href; 
var mainurl=url.split("?"); 
alert(mainurl[0]); 
Powiązane problemy