在共享驱动器上打开文件的Javascript无法正常工作

时间:2014-07-03 16:42:49

标签: javascript

Gang,

我希望有人可以告诉我这里我做错了什么。我搜索了几个地方,我所做的一切都应该有效,但事实并非如此。我在本地公司内部网上有一个页面。当有人单击包含相关文档的类别的复选框时,该页面应该从网络共享驱动器打开一个文件(通常是.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')"/>

2 个答案:

答案 0 :(得分: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中的空格进行URL编码。虽然大多数浏览器对此非常宽容,但根据标准的URL可能不包含空格。

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

答案 1 :(得分:0)

你需要逃避斜杠

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