web-dev-qa-db-fra.com

Création d'un nouvel objet Location en javascript

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?

66
Josh Johnson

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 .

119
CMS

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.

26

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);
9
epascarello