2017-03-17 42 views
0

我有一個在SharePoint Online中承載的自定義PowerPoint Office加載項。我正在使用JavaScript API來獲取有關該套牌的信息,例如當前的幻燈片ID。如何從Office加載項獲取SharePoint O365文檔ID

Office.initialize = function (reason) { 
    $(document).ready(function() { 
    Office.context.document.addHandlerAsync('documentSelectionChanged', onDocumentSelectionChanged); 
     onDocumentSelectionChanged(); 
    }); 
}; 

function onDocumentSelectionChanged() { 
    Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, 
    function (result) { 
     if (result.status === Office.AsyncResultStatus.Succeeded) { 
     var slideId = result.value.slides[0].id; 
     } 
    }); 
} 

我在API中找不到任何東西來獲取當前SharePoint文檔的ID(guid)。這是Office API的一部分,還是我可以通過其他方式獲取ID?

回答

1

你不能從SourceDoc查詢字符串屬性中獲取它嗎?

您曾經可以將SourceDoc作爲必需的標記參數傳遞給插件。現在他們已經將它作爲json字符串移動到window.name。所以你需要做JSON.parse(window.name).xdmInfo和一些額外的字符串操作來清理URL。它包含共享點內文檔的共享點URL和GUID

+0

加載項在其自己的iframe中呈現在與主窗口不同的域上,因此無法讀取地址欄中的URL。 – Jared

+1

您曾經能夠將SourceDoc作爲必需的標記參數傳遞給插件。現在他們已經將它作爲json字符串移動到window.name。所以你需要做JSON.parse(window.name).xdmInfo和一些額外的字符串操作來清理URL。它包含sharepoint中的sharepoint url和文檔的GUID。 – Maarten

+0

哇,謝謝!請添加此作爲答案,以便我可以接受它。我最初的搜索沒有提供這個「功能」的任何文檔,但我會繼續尋找。我會清理一下,但是這個片段讓我獲得了文檔ID:'JSON.parse(window.name).xdmInfo.split('|')[2] .match(/ [a-z0-9 ] {32} /)' – Jared

相關問題