2010-08-13 352 views
0

我有一個本地的網絡應用程序,可以讓用戶附加和查看文件。查看文件只是window.open(fileName),但是無論何時文件名有#號,文件將無法打開並出現dns錯誤。我已經試過用#%23\#逃避#符號,但它仍然無法打開......是否有什麼特殊的我需要做的,以逃避window.open url中的#符號?Javascript:Window.Open with#sign in URL?

我已將源文件的文件路徑直接複製到網絡瀏覽器,並且打開狀態良好,因此我認爲這是window.open命令的問題。

編輯:window.open代碼按要求。網址是總有一些事情我們網絡上的本地如\\路徑\ fileName.pdf

window.open('file:' + url, '', 'top=10,left=10,height=' + (screen.height - 50) + ',width=' + (screen.width - 50) + ',titlebar=no,resizable=yes,scrollbars=1'); 

編輯#2:我試過window.open串%23之前逃離#工程,並提示顯示它就在window.open之前,我可以複製/粘貼字符串到IE並打開它,但window.open代碼仍然失敗。

URL路徑:file:\\NetworkPath\DoC#1.pdf

值window.open是給我:res://ieframe.dll/dnserror.htm#file://NetworkPath/Doc

應用程序是在我們的軟件應用程序中的嵌入式網頁瀏覽器,使用IE託管(我認爲6)

+0

'%23'應該可以工作,儘管取決於你需要編碼兩次的情況,你可以粘貼你正在嘗試的'window.open()'代碼嗎? – 2010-08-13 12:43:32

+0

我將它添加到原文中 – Rachel 2010-08-13 12:58:24

+0

它似乎是瀏覽器特定的問題。因爲它在IE瀏覽器工作,如果我通過模擬點擊這樣的標籤打開包含'#'的網址:file:///C:/Users/ehpc/Desktop/file#fdfds.txt。但是如果我將目標=「_ blank」應用於,則不起作用。 – ehpc 2010-08-13 13:29:56

回答

1

看起來有一個錯誤在Microsoft's kb中列出了IE6。 :)

+0

謝謝,那可能是我的問題。該軟件使用的嵌入式網頁瀏覽器是IE6,我不認爲我可以更新它。我最終修改了FileUpload過程,以便在保存之前從文件名中刪除任何#符號,而對於現有文件,我只是拋出一個包含URL的提示,以便他們可以將其複製/粘貼到Web瀏覽器中。該應用程序只有少數用戶,他們是可以處理基本指令的那種:) – Rachel 2010-08-13 15:23:33