EditDocument не всегда работает в Chrome

У меня возникла похожая проблема, чтобы MicrosoftOfficeEditDocument не работал в Chrome.

Я загрузил обновленную библиотеку, как сказано в ответе, и она отлично работает с Office 2013, но не с 2010 годом. В Office 2010 у меня есть некоторые файлы, которые открываются, а некоторые - нет, они не всегда совпадают. Я пытался с.doc, .docx, .ppt, .pptx, .xls и.xlsx.

Я называю функцию редактирования документа:ITHit.WebDAV.Client.DocManager.EditDocument(sDocumentUrl, javaAppletFilePath);

РЕДАКТИРОВАТЬ:

На самом деле, кажется, это проблема длины файла URL. Когда мой URL-адрес файла (sDocumentUrl) длиннее, чем длина URL-адреса моего скрипта, в котором я вызываю EditDocument, он прекрасно работает. Но когда он короче, конец URL-адреса скрипта добавляется после sDocumentUrl, что приводит к сбою вызова. И это происходит только с Chrome и Office 2010.

Есть ли способ заставить эту работу?

1 ответ

Решение

добавлять '\0' до конца URL

Добавить '\0' (ноль) до конца строки, которую вы передаете MicrosoftOfficeEditDocument(), подобно MicrosoftOfficeEditDocument(path + '\0');, Кроме того, вы должны использовать MicrosoftOfficeEditDocument() вместо EditDocument() так как EditDocument() постараюсь позвонить JavaEditDocument() из-за нулевой завершенной строки.

Это решение взято отсюда - https://code.google.com/p/chromium/issues/detail?id=269183

Для получения дополнительной информации - открытие файлов webdav в Chrome через подключаемый модуль Office Authorization для браузеров NPAPI завершается неудачно для определенных файлов

Сначала проверьте ActiveX

Тем не менее, вы не должны добавлять '\0' на путь, когда MicrosoftOfficeEditDocument() откроет документ через объект ActiveX SharePoint.OpenDocument, иначе плагин ActiveX не распознает формат файла через расширение и попытается открыть документ через undefined:ofe|u| вместо ms-word:ofe|u| например. Для этого вы должны проверить ActiveX перед добавлением '\0',

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

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

Предупреждение: это решение ломается MicrosoftOfficeEditDocument в Firefox. Firefox не любит \0 завершенная строка.

Другие вопросы по тегам