javascript window.open () и символ # - PullRequest
       12

javascript window.open () и символ #

1 голос
/ 24 октября 2008

Я пытаюсь связать файл с символом '#' с помощью вызова 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» не найден

Ответы [ 4 ]

5 голосов
/ 24 октября 2008

Вы ищете темные магики encodeURI :

window.open("http://your-url.com/" + encodeURIComponent("foo#123.jpg"));
0 голосов
/ 24 октября 2008

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

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
0 голосов
/ 24 октября 2008

Вы пробовали кодирование URL через JavaScript, как сделано здесь и здесь ?

0 голосов
/ 24 октября 2008

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

\#
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...