2014-07-03 25 views
0

幫,Javascript打開共享驅動器上的文件不起作用

我希望有人能告訴我我在做什麼錯在這裏。我搜索了幾個地方,我正在做的每件事都應該有效,但事實並非如此。我在本地公司內部網上有一個頁面。當有人點擊與相關文檔的類別的複選框時,該頁面應該從網絡共享驅動器打開一個文件(通常是.docx或.xlsx)。我提出了一條警告消息,以確保它正在通過該函數的該部分。這有效,但之後沒有任何反應。這是函數,這裏是我如何調用它。

<script type="text/javascript"> 
function opensupport(chkbox, url) { 
    var x = document.getElementById(chkbox) 
    if (x.checked) {   
     if (confirm(x.value + " has an associated document to complete. Would you like to open that now?")) { 
      alert("opening " + url); 
      window.open(url, 'newwin'); 
     } 
    } 
} 

這裏是如何,我叫它...

<input type='checkbox' name='initiative' id='34' value='Test Link' onclick="opensupport('34', 'file:\\qdcns0001\projects\EAI Vendor Management\fact sheets\docs\AdvancedMD_Fact_Sheet.doc')"/> 
+0

即使您在Windows上,AFAIK URL也會使用正斜槓。即使目錄分隔符應該是反斜槓(我懷疑),URL的協議部分應使用雙_forward_斜槓。我懷疑瀏覽器根本無法解析URL,因此拒絕打開窗口。 – 11684

+0

選中此項:[http://stackoverflow.com/questions/5796215/an-url-to-a-windows-shared-folder](http://stackoverflow.com/questions/5796215/an-url-to-一個Windows共享文件夾) –

+0

你見過這個:http://stackoverflow.com/questions/3582671/how-to-open-a-local-disk-file-with-javascript –

回答

0

你需要躲避斜線

file://///qdcns0001\projects\EAI Vendor Management\fact sheets\docs\AdvancedMD_Fact_Sheet.doc 
1

在JavaScript字符串文字反斜槓是轉義字符。你需要使用雙反斜線來獲得一個反斜槓的字符串:

'file:\\\\qdcns0001\\projects\\EAI Vendor Management\\fact sheets\\docs\\AdvancedMD_Fact_Sheet.doc' 

隨着用戶11684指出,一個URL通常使用斜槓,而不是反斜槓,讓沃爾德是:

'file://qdcns0001/projects/EAI Vendor Management/fact sheets/docs/AdvancedMD_Fact_Sheet.doc' 

而且,您可能需要對網址中的空格進行網址編碼。儘管大多數瀏覽器對此非常寬鬆,但根據標準的URL可能不包含空格。

'file://qdcns0001/projects/EAI%20Vendor%20Management/fact%20sheets/docs/AdvancedMD_Fact_Sheet.doc'