1

我遇到了与MicrosoftOfficeEditDocument 在 Chrome 中没有工作类似的问题。

我确实按照答案中的说明下载了更新的库,它适用于 Office 2013,但不适用于 2010。使用 Office 2010,我有一些打开的文件和一些没有打开的文件,它们并不总是相同的。我尝试使用 .doc、.docx、.ppt、.pptx、.xls 和 .xlsx。

我将编辑文档功能称为: ITHit.WebDAV.Client.DocManager.EditDocument(sDocumentUrl, javaAppletFilePath);

编辑 :

这实际上似乎是文件url长度的问题。当我的文件 url (sDocumentUrl) 比我调用 EditDocument 的脚本 url 的长度长时,它工作得很好。但是当它更短时,会在 sDocumentUrl 之后添加脚本 url 的末尾,这会导致调用失败。这只发生在 Chrome 和 Office 2010 上。

有什么办法可以使这项工作?

4

1 回答 1

0

添加'\0'到 URL 的末尾

'\0'(null) 添加到您传递给的字符串的末尾MicrosoftOfficeEditDocument()。喜欢MicrosoftOfficeEditDocument(path + '\0');。此外,您应该使用MicrosoftOfficeEditDocument()而不是EditDocument()因为EditDocument()将尝试调用JavaEditDocument()空终止字符串。

这是从这里采取的解决方案 - https://code.google.com/p/chromium/issues/detail?id=269183#c5

有关更多信息 -对于某些文件,通过 NPAPI 浏览器的 Office 授权插件在 Chrome 中打开 webdav 文件失败

首先检查 ActiveX

但是,您不应'\0'在将通过 SharePoint.OpenDocument ActiveX 对象打开文档的路径中添加 ,MicrosoftOfficeEditDocument()否则 ActiveX 插件将无法通过扩展名识别文件格式并尝试通过undefined:ofe|u|而不是ms-word:ofe|u|例如打开文档。为此,您应该在附加'\0'.

if (!('ActiveXObject' in window)) {
    path = path + '\0';
}

ITHit.WebDAV.Client.DocManager.MicrosoftOfficeEditDocument(path)

警告MicrosoftOfficeEditDocument:此解决方案在 Firefox中中断。Firefox 不喜欢\0终止的字符串。

于 2014-07-01T21:40:30.027 回答