Réponses:
var host = window.location.hostname;
ou éventuellement
var host = "http://"+window.location.hostname;
ou si vous aimez la concaténation
var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);
http. Utilisez le protocole relatif. Peut-être plus approprié que le codage en dur.
concat. Dans l'exemple par var a = 1 + 2 + " should be 12";rapport à la version concat de this var a = "".concat(1).concat(2).concat(" should be 12");. L'utilisation de concat vous évitera beaucoup de problèmes +pour le calcul, pas pour la concaténation.
hostnamedonnera seulement le domaine et hostfournira le port également. C'est un excellent mini-outil pour voir l'anatomie du lien bl.ocks.org/abernier/3070589
Pour obtenir le nom d'hôte: location.hostname
Mais votre exemple recherche également le schéma, il location.originsemble donc faire ce que vous voulez dans Chrome, mais n'est pas mentionné dans la documentation de Mozdev. Vous pouvez le construire avec
location.protocol + '//' + location.hostname
Si vous voulez également le numéro de port (quand ce n'est pas 80), alors:
location.protocol + '//' + location.host
Vous pouvez obtenir le protocole, l'hôte et le port en utilisant ceci:
window.location.origin
| Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|----------------------------------|-------|-----------------|-------------------|-------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | 11 | ? | 7 (possibly earlier, see webkit bug 46558) |
| Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|----------------------------------|-------|------------------------|----------|--------------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | ? | ? | 7 (possibly earlier, see webkit bug 46558) |
Toute compatibilité avec les navigateurs provient du Mozilla Developer Network
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
Cela devrait fonctionner:
window.location.hostname
hostsi vous avez également besoin de port
Selon vos besoins, vous pouvez utiliser l'une des window.locationpropriétés. Dans votre question, vous posez des questions sur l' hôte , qui peut être récupéré en utilisant window.location.hostname(par exemple www.example.com). Dans votre exemple, vous montrez quelque chose qui s'appelle l' origine , qui peut être récupéré en utilisant window.location.origin(par exemple http://www.example.com).
var path = window.location.origin + "/";
//result = "http://localhost:60470/"
J'aime celui-ci selon le but
window.location.href.split("/")[2] == "localhost:17000" //always domain + port
Vous pouvez l'appliquer sur n'importe quelle chaîne d'URL
var url = "http://localhost:17000/sub1/sub2/mypage.html?q=12";
url.split("/")[2] == "localhost:17000"
url.split("/")[url.split("/").length-1] == "mypage.html?q=12"
Suppression du protocole, du domaine et du chemin de la chaîne d'URL (chemin relatif)
var arr = url.split("/");
if (arr.length>3)
"/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"