it-swarm.com.ru

Есть ли способ получить URL без строки запроса?

У меня есть URL-адрес, как http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235.

Я хочу получить URL без строки запроса: http://localhost/dms/mduserSecurity/UIL/index.php.

Есть ли способ для этого в JavaScript? В настоящее время я использую document.location.href, но он возвращает полный URL.

227
saint

Попробуйте это: window.location.href.split('?')[0]

288
tradyblix

Прочитайте об Window.location и об интерфейсе Location :

var url = [location.protocol, '//', location.Host, location.pathname].join('');
344
Felix Kling
location.toString().replace(location.search, "")
29
Quentin
var url = window.location.Origin + window.location.pathname;
8
Jason

Если вы также хотите удалить хеш, попробуйте следующее: window.location.href.split(/[?#]/)[0]

7
user1079877

Пытаться:

document.location.protocol + '//' +
document.location.Host +
document.location.pathname;

(NB: .Host, а не .hostname, так что порт также включается, если это необходимо)

5
Alnitak

просто обрежьте строку, используя split (простой способ):

var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);
3
pleasedontbelong

Чтобы получить каждую часть URL, кроме запроса:

var url = (location.Origin).concat(location.pathname).concat(location.hash);

Обратите внимание, что это включает и хэш, если он есть (я знаю, что в вашем примере URL нет хэша, но я включил этот аспект для полноты). Чтобы устранить хеш, просто исключите .concat(location.hash).

Лучше использовать concat для объединения строк Javascript (а не +): в некоторых ситуациях это позволяет избежать проблем, таких как путаница типов.

2
Andrew Faulkner

Как насчет этого: location.href.slice(0, - ((location.search + location.hash).length))

1
LI XiangChen

Вот два метода:

<script type="text/javascript">
    var s="http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu
                                =true&pcode=1235";

    var st=s.substring(0, s.indexOf("?"));

    alert(st);

    alert(s.replace(/\?.*/,''));
</script>
1
TheVillageIdiot

Вот подход, использующий интерфейс RL () :

new URL(location.pathname, location.href).href
0
s4y

Используйте свойства window.location

var loc = window.location;
var withoutQuery = loc.hostname + loc.pathname;
var includingProtocol = loc.protocol + "//" + loc.hostname + loc.pathname;

Вы можете увидеть больше свойств в https://developer.mozilla.org/en/DOM/window.location

0
detaylor