Il ya un autre hack que j'utilise et que je n'ai jamais vu dans une réponse StackOverflow: en utilisant l'attribut "src" d'une image donnera le chemin de base complet de votre site. Par exemple:
var dummy = new Image;
dummy.src = '$'; // using '' will fail on some browsers
var root = dummy.src.slice(0,-1); // remove trailing '$'
Sur une URL comme http://domain.com/somesite/index.html
, root
sera réglé sur http://domain.com/somesite/
. Cela fonctionne également pour localhost ou toute URL de base valide. Notez que cela provoquera une demande HTTP échouée sur l'image factice . Vous pouvez utiliser une image existante à la place pour éviter cela, avec seulement de légers changements de code.
Une autre variante utilise un lien factice, sans effet secondaire sur les requêtes HTTP:
var dummy = document.createElement ('a');
dummy.href = '';
var root = dummy.href;
Je n'ai pas testé sur tous les navigateurs, cependant.
J'ai un site web et 2 applications dans IIS. Par exemple: ** sub.domain.com/v1 ** et ** sub.domain.com/v2 ** et des pages comme *** sub.domain.com/v1/Default.aspx*** ou _domaine. com/v2/Products/Default.aspx_, etc Comment puis-je obtenir la valeur ***/v2 ***, la racine de mon application *** sub.domain.com/v2***? – Kiquenet
@Kiquenet utilise un IDE javascript comme WebStorm, vous voyez les options possibles lorsque vous écrivez du code. –
'window.location.origin' est indéfini dans IE9 (selon le lien, c'est IE11 +). [Cette réponse] (http://stackoverflow.com/a/1368295/897326) a aidé. – Neolisk