Question

J'essaie de créer un lien vers un fichier contenant le caractère "#" via un appel window.open (). Le fichier existe et peut être lié à très bien en utilisant une balise d'ancrage normale.

J'ai essayé d'échapper au caractère '#' avec '% 23', mais lorsque le window.open (myurl) est traité, le '% 23' devient '% 2523'. Cela me dit que ma chaîne d'URL est en train d'être échappée par l'appel window.open en changeant le '%' en '% 25'.

Existe-t-il des moyens de contourner cet échappement supplémentaire?

Exemple de code:

<script language="javascript">
function escapePound(url)
{
   // original attempt
   newUrl = url.replace("#", "%23");
   // first answer attempt - doesn't work
   // newUrl = url.replace("#", "\\#");

   return newUrl;
 }
</script>
<a href="#top" onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(escapePound(url)); return true;">Some Doc</a>

L'URL qui crie dit " fichier: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" introuvable.

Était-ce utile?

La solution

Vous recherchez la magie noire de encodeURI :

window.open("http://your-url.com/" + encodeURIComponent("foo#123.jpg"));

Autres conseils

Avez-vous essayé d'utiliser le caractère d'échappement du texte standard "\"?

\#

Avez-vous essayé le codage d'URL via JavaScript comme ici et ici ?

Avez-vous essayé de ne pas échapper à l'URL?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top