Nếu tôi sử dụng:
alert(window.location.href);
Tôi nhận được mọi thứ bao gồm cả chuỗi truy vấn. Có cách nào để lấy phần url chính không, ví dụ:
http://mysite.com/somedir/somefile/
thay vì
http://mysite.com/somedir/somefile/?foo=bar&loo=goo
Nếu tôi sử dụng:
alert(window.location.href);
Tôi nhận được mọi thứ bao gồm cả chuỗi truy vấn. Có cách nào để lấy phần url chính không, ví dụ:
http://mysite.com/somedir/somefile/
thay vì
http://mysite.com/somedir/somefile/?foo=bar&loo=goo
Câu trả lời:
Điều này là có thể, nhưng bạn sẽ phải xây dựng nó thủ công từ locationđối tượng :
location.protocol + '//' + location.host + location.pathname
'//' + location.host + location.pathname
http://www.example.com:8080/asdf.html?foo=bar
location.origin, mà tôi tin rằng cũng giải quyết mối quan tâm của @ izogfif.
Mọi câu trả lời đều khá phức tạp. Đây:
var url = window.location.href.split('?')[0];
Ngay cả khi một? không có mặt, nó vẫn sẽ trả về đối số đầu tiên, đó sẽ là URL đầy đủ của bạn, trừ chuỗi truy vấn.
Nó cũng không theo giao thức, nghĩa là bạn thậm chí có thể sử dụng nó cho những thứ như ftp, itunes.etc.
window.location.href.split(/[?#]/)[0];