我试图通过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"无法找到

有帮助吗?

解决方案

你寻找 encodeURI 的黑暗魔法:

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

其他提示

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

\#

您是否尝试过通过JavaScript进行网址编码,如此处这里

你有没有尝试过逃避网址?

<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