Pregunta

Estoy intentando vincular a un archivo que tiene el carácter '#' a través de una llamada window.open (). El archivo existe y se puede vincular con una etiqueta de anclaje normal.

He intentado escapar del carácter '#' con '% 23' pero cuando se procesa el window.open (myurl), el '% 23' se convierte en '% 2523'. Esto me dice que mi cadena de url se está escapando por la ventana. Llamada abierta cambiando el '%' al '% 25'.

¿Hay formas de evitar este escape adicional?

Código de muestra:

<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>

La URL que grita dice " archivo: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" no se puede encontrar

¿Fue útil?

Solución

Busca las magias oscuras de encodeURI :

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

Otros consejos

¿Intentaste usar el texto estándar escape char " \ " ;?

\#

¿Has probado la codificación de URL a través de JavaScript como se hace aquí y aquí ?

¿Has intentado no escapar de la URL?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top