javascript window.open()和#符号

shr*_*b34 1 javascript url-rewriting

我试图通过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>
Run Code Online (Sandbox Code Playgroud)

大喊的网址说"file://MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF"找不到

Rah*_*hul 5

你寻找encodeURI的黑暗魔法:

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

  • 早点弄清楚为什么它不起作用。需要首先打开窗口,然后在返回的对象上将 location.href 更改为转义字符串。 (2认同)