我遇到与MicrosoftOfficeEditDocument didn't work in Chrome类似的问题。
我确实按照答案中的说法下载了更新的库,它适用于Office 2013但不适用于2010。 在Office 2010中,我有一些文件可以打开而另一些文件没有,它们并不总是相同的。我试过.doc,.docx,.ppt,.pptx,.xls和.xlsx。
我用以下内容调用编辑文档fonction:
ITHit.WebDAV.Client.DocManager.EditDocument(sDocumentUrl, javaAppletFilePath);
编辑:
它实际上似乎是文件网址长度的问题。当我的文件url(sDocumentUrl)长于我调用EditDocument的脚本url的长度时,它完全正常。但是当它更短时,脚本url的结尾会在sDocumentUrl之后添加,这会使调用失败。这只发生在Chrome和Office 2010上。
任何使这项工作的方法?
答案 0 :(得分:0)
将'\0'
添加到网址末尾
将'\0'
(null)添加到要传递给MicrosoftOfficeEditDocument()
的字符串的末尾。像MicrosoftOfficeEditDocument(path + '\0');
一样。此外,您应该使用MicrosoftOfficeEditDocument()
而不是EditDocument()
,因为EditDocument()
将尝试调用JavaEditDocument()
,因为空终止字符串。
这是从这里采取的解决方案 - https://code.google.com/p/chromium/issues/detail?id=269183#c5
首先检查ActiveX
但是,当'\0'
通过SharePoint.OpenDocument ActiveX对象打开文档时,不应将MicrosoftOfficeEditDocument()
添加到路径中,否则ActiveX插件将无法通过扩展名识别文件格式并尝试例如,通过undefined:ofe|u|
而不是ms-word:ofe|u|
打开文档。为此,您应在追加'\0'
之前检查ActiveX。
if (!('ActiveXObject' in window)) {
path = path + '\0';
}
ITHit.WebDAV.Client.DocManager.MicrosoftOfficeEditDocument(path)
警告:此解决方案会破坏Firefox中的MicrosoftOfficeEditDocument
。 Firefox不喜欢\0
终止的字符串。