1

我正在尝试通过 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>

找不到大喊“file://MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF”的 URL

4

4 回答 4

5

您寻求encodeURI的黑暗魔法:

window.open("http://your-url.com/" + encodeURIComponent("foo#123.jpg"));
于 2008-10-24T15:29:35.577 回答
0

您是否尝试过使用标准文本转义字符“\”?

\#
于 2008-10-24T15:21:40.147 回答
0

您是否尝试过通过 JavaScript 进行 URL 编码,如此此处所做的那样?

于 2008-10-24T15:25:52.667 回答
0

您是否尝试过不转义网址?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>
于 2008-10-24T15:40:44.930 回答