Frage

Ich versuche, eine Datei zu verknüpfen, die das Zeichen ‚#‘ in über eine window.open () -Aufruf hat. Die Datei existiert und kann nur gut verbunden werden, um einen normalen Anker-Tag.

Ich habe versucht, mit dem Zeichen '#' Flucht '% 23' aber wenn der window.open (myurl) verarbeitet wird, erscheinen die '% 23' wird zu '% 2523'. Das sagt mir, dass meine URL-Zeichenfolge wird von dem window.open Anruf escapped wird das ‚%‘ auf das ‚% 25‘ zu ändern.

Gibt es Möglichkeiten, um diese zusätzlichen Entkommen zu arbeiten.

Beispielcode:

<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, die kreischt sagt "file: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" kann nicht gefunden werden

War es hilfreich?

Lösung

Sie suchen die dunklen magicks von encodeURI :

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

Andere Tipps

Haben Sie versucht, mit den Standard-Text Escape-Zeichen "\"?

\#

Haben Sie die URL-Codierung via JavaScript versucht, so getan hier und hier ?

Haben Sie versucht, die URL nicht entkommen?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top