43 votes

~ / équivalent en javascript

Un moyen intelligent de faire un chemin basé sur une racine "" référençant en JavaScript, juste comme nous avons ~/ dans ASP.NET?

46voto

MiffTheFox Points 10537

Demandez à votre page de générer un tag avec quelque chose comme:

 <link rel="home" id="ApplicationRoot" href="http://www.example.com/appRoot/" />
 

Ensuite, avoir une fonction en JavaScript qui extrait la valeur telle que:

 function getHome(){
    return document.getElementById("ApplicationRoot").href;
}
 

38voto

Kamarey Points 4416

Utiliser la balise de base :

 <head>
   <base href="http://www.example.com/myapp/" />
</head>
 

...

à partir de maintenant, tout lien utilisé sur cette page, que ce soit en javascript ou en html, sera relatif à la balise de base, qui est "http://www.example.com/myapp/".

11voto

doekman Points 5187

Vous pouvez également utiliser la fonctionnalité asp.net VirtualPathUtility :

 <script>
var basePath = '<%=VirtualPathUtility.ToAbsolutePath("~/")%>';
</script>
 

Remarque: je ne code pas le chemin d'accès à une chaîne JSON (guillemets d'échappement, caractères de contrôle, etc.). Je ne pense pas que ce soit un gros problème (les guillemets, par exemple, ne sont pas autorisés non échappés dans une URL), mais on ne sait jamais ...

8voto

RedWolves Points 5703

Je crée généralement une variable en haut du fichier js et lui attribue le chemin racine. Ensuite, j'utilise cette variable pour référencer un fichier.

 var rootPath = "/";
image.src = rootPath + "images/something.png";
 

6voto

Lloyd Points 16334

~ / est la racine de l'application et non une racine littérale, il interpelle ~ / pour signifier <YourAppVirtualDir>/

Pour créer une racine littérale en JavaScript, il suffit simplement de /, c'est-à-dire "/root.html". Il n'y a aucun moyen d'obtenir un chemin d'accès au niveau de l'application comme celui-ci en JavaScript.

Vous pourriez le pirater dans le fichier ASPX et le sortir dans une balise, mais j’envisagerais les implications en termes de sécurité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X