Domanda

Sto provando a collegarmi a un file che ha il carattere '#' tramite una chiamata window.open (). Il file esiste e può essere collegato semplicemente usando un normale tag anchor.

Ho provato a sfuggire al carattere '#' con '% 23' ma quando viene elaborato window.open (myurl), '% 23' diventa '% 2523'. Questo mi dice che la mia stringa url viene esclusa dalla chiamata window.open cambiando '%' in '% 25'.

Ci sono modi per aggirare questa fuga extra.

Codice di esempio:

<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 che urla dice "file: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" non può essere trovato

È stato utile?

Soluzione

Cerchi le magie oscure di encodeURI :

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

Altri suggerimenti

Hai provato a utilizzare il carattere di escape del testo standard " \ " ;?

\#

Hai provato la codifica URL tramite JavaScript come fatto qui e qui ?

Hai provato a non sfuggire all'URL?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top