Вопрос

Я пытаюсь связать файл с символом '#' с помощью вызова window.open (). Файл существует и его можно просто связать с помощью обычного тега привязки.

Я попытался экранировать символ «#» с помощью «% 23», но когда обрабатывается window.open (myurl), «% 23» становится «% 2523». Это говорит мне о том, что моя строка URL-адреса удаляется из-за вызова window.open, меняющего «%» на «% 25».

Есть ли способы обойти это дополнительное спасение?

Пример кода:

<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-адрес, на котором написано «file»: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" не может быть найден

Это было полезно?

Решение

Вы ищете темные чары encodeURI :

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

Другие советы

Вы пытались использовать стандартный текстовый escape-символ " \ "?

\#

Вы пробовали кодирование URL с помощью JavaScript, как это было сделано здесь и здесь ?

Вы пытались не избегать URL?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top