2013-08-14 7 views
5

Wenn meine aktuelle Seite ist in diesem Format ...

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

Gibt es einen einfachen Weg, um diese

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

mit Hilfe von Javascript zu bekommen?

Antwort

5

Sie diese Regex und Splitting Sachen nicht tun. Verwenden Sie den integrierten URL-Parser des Browsers.

window.location.origin + window.location.pathname 

Und wenn Sie eine URL zu analysieren, die nicht die aktuelle Seite:

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

Und IE zu unterstützen (weil IE nicht location.origin hat):

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

(Inspiration von https://stackoverflow.com/a/6168370/711902)

+0

Ich stimme zu, das erreicht genau das, was ich brauchte, ohne unnötige Schritte. Vielen Dank. –

+0

das funktioniert nicht in Opera 12 (und früher) und in IE (http://www.w3schools.com/jsref/prop_loc_origin.asp) – Micer

+1

@Micer Guter Punkt. Mit einer IE-Alternative aktualisiert. –

3

Versuchen split wie

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 

Auch verwenden wir viele Parameter in der GET, das erste Segment haben die URL ohne GET Parameter sein.

Dies ist DEMO

+0

Vielen Dank, genau was ich brauchte! Ich habe es in der Frage nicht erwähnt, aber das funktioniert auch, wenn keine Parameter übergeben werden =) –

+0

Wie würde Ihre string-basierte Lösung eine fehlerhafte URL behandeln, wie zum Beispiel 'http://www.domain.com/page#anchor? Parameter? Mit dem Dokument-Objekt und es ist api ist eine robustere Lösung IMO –

0

Versuchen

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

versuchen Sie dies:

var url=document.location.href; 
var mainurl=url.split("?"); 
alert(mainurl[0]); 
Verwandte Themen