Est-il possible de créer un nouvel objet Location en javascript? J'ai une URL sous forme de chaîne et je voudrais tirer parti de ce que javascript fournit déjà pour accéder aux différentes parties de celui-ci.
Voici un exemple de ce dont je parle (je sais que cela ne fonctionne pas):
var url = new window.location("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;
// etc etc
Est-ce que quelque chose comme ça est possible ou devrais-je essentiellement créer cet objet moi-même?
Eh bien, vous pouvez utiliser un élément d'ancrage pour extraire les parties d'URL, par exemple:
var url = document.createElement('a');
url.href = "http://www.example.com/some/path?name=value#anchor";
var protocol = url.protocol;
var hash = url.hash;
alert('protocol: ' + protocol);
alert('hash: ' + hash);
Il fonctionne sur tous les navigateurs modernes et même sur IE 5.5+.
Vérifiez un exemple ici .
Que diriez-vous d'utiliser le standard objet URL ?
var url = new URL("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;
Avertissement : Cette interface est un peu nouvelle, donc, si vous n'utilisez pas transpiler , veuillez vérifier le - tableau de compatibilité et faites vos tests sur les navigateurs cibles.
Vous pouvez tirer parti de la puissance d'un élément d'ancrage
var aLink = document.createElement("a");
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf";
alert(aLink.pathname);