2008-10-24 31 views
0

我試圖通過window.open()調用鏈接到具有'#'字符的文件。該文件確實存在,並且可以使用普通的錨標籤進行鏈接。javascript 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說 「文件://MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF」 無法找到

+0

你能舉一個例子嗎? – StingyJack 2008-10-24 15:27:18

回答

6

你追求的encodeURI黑暗magicks:

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

這樣做了。不知道爲什麼這在早些時候不適合我們。謝謝。 – shrub34 2008-10-24 15:43:11

+1

找出它爲什麼沒有工作得更早。需要首先打開窗口,然後在返回的對象上將location.href改爲轉義字符串。 – shrub34 2008-10-24 15:50:05

0

你有沒有嘗試使用標準文本逃逸字符「\」?

\# 
+0

剛剛嘗試過。所調用的URL然後靠得更近,但仍然失敗。更新問題 – shrub34 2008-10-24 15:25:54

0

你有沒有通過JavaScript試圖URL編碼爲完成herehere

0

你有沒有試過逃跑的網址是什麼?

<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>