Pergunta

Eu estou tentando link para um arquivo que tem o caractere '#' no meio de uma chamada window.open (). O arquivo existe e pode ser ligado a apenas multa usando uma tag âncora normal.

Eu tentei escapar o caractere '#' com '% 23', mas quando o window.open (myURL) é processado, o '% 23' torna-se '% 2523'. Isto diz-me que a minha string url está sendo escapped pela chamada window.open mudar o '%' para o '% 25'.

Existem maneiras de contornar esse escapar extra.

Exemplo de código:

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

URL que gritos diz "file: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" não pode ser encontrado

Foi útil?

Solução

Você busca os magicks escuras de encodeURI :

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

Outras dicas

Você tentou usar o caractere de escape de texto padrão "\"?

\#

Você já tentou URL codificação via JavaScript como feito aqui e aqui ?

Você não tentou escapar a url?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top